關於ajax中return false無效的問題


 

onSubmit="return checkForm();" 方法中:

在ajax里直接寫return false,是無效的。

因為它返回的是ajax中的success方法,而不是checkForm()。

因此可以設置一個全局變量用來做判斷,實現停止的效果。

注意:ajax一定要是同步的。

 

 

-------------------------------------------form表單代碼----------------------------------------

<form action="/1/mobile/codeJsLogin" onSubmit="return checkForm();" id="login_form" method="post">


------------------------------script代碼-----------------------------
<script>

function checkForm(){
var cname = $("#cname").val();
var randomSms = $("#randomSms").val();
n = false;//全局變量,以便下面做判斷
$.ajax({
type: "POST",
url: "/1/mobile/jsCode",
data: {cname:cname,randomSms:randomSms},
dataType: "json",
async: false,//一定要是同步請求,否則會跳轉;(ajax默認是異步的)
success: function(obj){
if (obj['error'] == '1') {
alert(obj['message']);

} else {
n = true;
alert(obj['message']);

}
}
});
    //全局判斷
if(n) {
return true;
}else{
return false;
}
}


</script>


總結:
重要的兩個點:異步請求 + 全局變量的判斷


方法寫在 $(document).ready(function(){})容易出錯直接寫在 <script>
 
        










免責聲明!

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



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