js阻止提交表單(post)

在註冊頁面,咱們常常要用到頁面驗證,驗證到不符合要求的數據就阻止提交到服務器,以下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()"/>
View Code

效果:這樣看起來貌似沒有問題,可是這樣每每可以提示判斷出錯誤的手機號碼,可是卻不能阻止它提交到後臺;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();"/>
相關文章
相關標籤/搜索