在註冊頁面,咱們常常要用到頁面驗證,驗證到不符合要求的數據就阻止提交到服務器,以下javascript
<script type="text/javascript"> function Check() { var phoneNumber = $.trim($("#PhoneNumber").val()); var isMobile=/^1?(3|5|7|8)\d{9}$/; if (isMobile.test(phoneNumber) == false) { alert("電話號碼格式錯誤"); $("#PhoneNumber").focus(); return; } } </script> <input type="submit" name="addNewAddress" value="保存收貨地址" class="saveNewAddress" onclick="Check()"/>
效果:這樣看起來貌似沒有問題,可是這樣每每可以提示判斷出錯誤的手機號碼,可是卻不能阻止它提交到後臺;java
緣由:實際上是check()只是一個驗證手機號的動做,並無阻止提交的動做。提交表單時先執行check()這個函數再post,post的時候會執行頁面判斷(判斷一個值,具體是什麼值須要瞭解整個post的過程,這裏我也不太清楚)若是是true,就post頁面,若是是false,就不執行任何動做。服務器
解決方法:在check()方法裏執行驗證以後,若是驗證符合要求就返回true,不然返回false;在調用方法的地方加上「return 方法名」(這裏就是return Check(););完整的代碼以下:ide
<script type="text/javascript"> function Check() { var phoneNumber = $.trim($("#PhoneNumber").val()); var isMobile=/^1?(3|5|7|8)\d{9}$/; if (isMobile.test(phoneNumber) == false) { alert("電話號碼格式錯誤"); $("#PhoneNumber").focus(); return false; } return true; } </script> <input type="submit" name="addNewAddress" value="保存收貨地址" class="saveNewAddress" onclick="return Check();"/>