jQuery ajax 同步失效?

2022-05-24 03:48:10 字數 1015 閱讀 8466

今天表單驗證時,出現了乙個異常現象,耗去了我不少時間呀。

我的驗證方法大致如下:

function

checkform()

else

if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i.test(mail))

else

, url:"/checkmail",

success:

function

(res)

},error:

function

(ex)

});}

//其他驗證.....

}

但條件不滿足時前面兩個return都能攔住checkform繼續向下執行,而ajax裡面的return卻阻止不了checkform向下執行!

起初以為設定的同步請求沒起作用,查了好多資料,但都是那樣設定的。後來使用firefox除錯,設定了斷點才發現其實已經是同步了,問題就出現在return上,這裡的return確實不能阻止程式繼續執行。

原因是這裡的return只會renturn其自己的域函式,也就是success或error的**函式。所以可以使用臨時變數下即可:

function

checkform()

else

if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i.test(mail))

else

, url:"/checkmail",

success:

function

(res)

},error:

function

(ex)

});if(!validate)

}//其他驗證.....

}

這個問題雖然只是小問題,道理也很容易明白,可我確實耗費了1個多小時,可謂當局者迷呀!!

jQueryAjax同步非同步區別

在專案開發過程中,要實現這麼乙個功能 href job.html onclick return check 就業a 我們都知道onclick是優先執行於href屬性的,只有onclick返回true才會執行href。接下來看js怎麼寫的 function check else return fal ...

jquery ajax 同步非同步的執行

大家先看一段簡單的 jquery ajax 返回值的js function getreturnajax else 但是我們呼叫這個 getreturnajax 發現始終取得的都是 false,那就是說 return true,return false 根本沒有起作用,在火狐下用 firebug 除錯...

jquery ajax 同步非同步的執行

大家先看一段簡單的jquery ajax 返回值的js function getreturnajax else 但是我們呼叫這個getreturnajax 發現始終取得的都是false,那就是說return true,return false根本沒有起作用,在火狐下用firebug除錯也證明,根本不...