0
我已經實現了jQuery來驗證郵政編碼。在位置文本框的focusout()事件中。郵政編碼有效時啓用按鈕 - 不起作用
如果郵政編碼無效,則禁用提交按鈕。
我在這裏面臨一個問題。
- 用戶輸入無效的郵政編碼,試圖點擊提交,然後按鈕被禁用,並給出錯誤消息。
- 用戶將郵政編碼更改爲正確的格式,然後單擊提交按鈕,現在必須啓用按鈕。 --------但在這裏它仍然是禁用的,錯誤信息仍然顯示。 ---------如果您嘗試將焦點更改爲其他輸入字段,則一切正常。
這裏包括
<script type="text/javascript">
$("#locationInput").focusout(function(){
var value = $("#locationInput").val();
//If the value give in location field is numeric, it is guessed to be a zipcode
if($.isNumeric(value))
{
$("#hidden").val("zipcode");
//Zipcode validation for USA
var postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/;
if(postalCodeRegex.test(value))
{
$("#error").html("");
$("#submitButton").removeAttr("disabled");
var value = $("#hidden").val();
//alert("Valid zipcode");
}
else
{
//alert("Invalid zipcode");
$("#error").html("Please provide a valid zipcode (Ex: 95035) or city name");
$("#submitButton").attr("disabled", "disabled");
}
}
else
{
$("#hidden").val("city");
//alert("false");
}
});
</script>
<br />
代碼做任何人知道我錯了。
謝謝。
感謝您的快速回復來驗證你的情況郵政編碼的最佳方式。但我已經嘗試過使用keyup事件。在這種情況下,隱藏的值就是存儲。我在這裏錯過了什麼。 – user2617611
你是什麼意思「隱藏價值是存儲」?您可以使用與您之前編寫的相同的代碼,只需將焦點輸出中的事件更改爲鍵盤輸入,並且所有代碼都可以像以前一樣工作,只需在每次按下按鍵後執行驗證。此外,您可以添加超時以防止連續進行多次驗證,當用戶輸入速度較快時,但對於郵政編碼,我不認爲這是必要的。 – IgorCh
非常感謝您的回覆。發現問題(我已經改變了測試變量「value」的值,所以它一直在進入else塊,現在IT工作,都是通過focusout和keyup事件進行的,對於給您帶來的不便,我們感到抱歉。但是我對javascript/jquery很新,我找不到任何更簡單的方法,所以我想我會從基本的開始,我將嘗試在這方面進行更多的探索。 – user2617611