js阻止提交表單(post)


在注冊頁面,我們經常要用到頁面驗證,驗證到不符合要求的數據就阻止提交到服務器,如下

<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

效果:這樣看起來貌似沒有問題,但是這樣往往能夠提示判斷出錯誤的手機號碼,但是卻不能阻止它提交到后台;

原因:其實是check()只是一個驗證手機號的動作,並沒有阻止提交的動作。提交表單時先執行check()這個函數再post,post的時候會執行頁面判斷(判斷一個值,具體是什么值需要了解整個post的過程,這里我也不太清楚)如果是true,就post頁面,如果是false,就不執行任何動作。

解決方法:在check()方法里執行驗證之后,如果驗證符合要求就返回true,否則返回false;在調用方法的地方加上“return 方法名”(這里就是return Check(););完整的代碼如下:

<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();"/>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM