淺析onsubmit校驗(yàn)表單時(shí)利用ajax的return false無(wú)效問(wèn)題
更新時(shí)間:2013年07月10日 11:29:19 作者:
前幾天,在校驗(yàn)一個(gè)表單數(shù)據(jù)用到ajax時(shí),遇到 return false 無(wú)效問(wèn)題,以下就是對(duì)這個(gè)問(wèn)題進(jìn)行了分析介紹,需要的朋友可以參考下
復(fù)制代碼 代碼如下:
/**
* 表單提交校驗(yàn)
**/
function onSubmit(){
if($('#name').val().length<2){
alert("名稱請(qǐng)不少于兩個(gè)漢字");
return false;
}
var t = new Date().getTime();
$.ajax({
type: "POST",
url: "/users/checkrepeat/",
data: "name=" + $('#name').val() + "&time=" + t,
success:function(res){
if(res == 'exists'){
alert("名稱已存在,請(qǐng)修改.");
return false;
}
}
});
}
問(wèn)題原因:
1. ajax時(shí)return false 的function與onsubmit()不是同一個(gè)函數(shù);
2. 在ajax執(zhí)行時(shí),async默認(rèn)的設(shè)置值為true,這種情況為異步方式,就是說(shuō)當(dāng)ajax發(fā)送請(qǐng)求后,在等待server端返回的這個(gè)過(guò)程中,前臺(tái)會(huì)繼續(xù) 執(zhí)行ajax塊后面的腳本,直到server端返回正確的結(jié)果才會(huì)去執(zhí)行success,也就是說(shuō)這時(shí)候執(zhí)行的是兩個(gè)線程,ajax塊發(fā)出請(qǐng)求后一個(gè)線程 和ajax塊后面的腳本(另一個(gè)線程)。
修改后的代碼:
復(fù)制代碼 代碼如下:
/**
* 表單提交校驗(yàn)
**/
function onSubmit(){
if($('#name').val().length<2){
alert("名稱請(qǐng)不少于兩個(gè)漢字");
return false;
}
var flag = true;
var t = new Date().getTime();
$.ajax({
type: "POST",
async:false, // 設(shè)置同步方式
cache:false,
url: "/users/checkrepeat/",
data: "name=" + $('#name').val() + "&time=" + t,
success:function(res){
if(res == 'exists'){
alert("名稱已存在,請(qǐng)修改.");
flag = false;
}
}
});
if(!flag)
return false;
相關(guān)文章
jQuery+ajax實(shí)現(xiàn)無(wú)刷新級(jí)聯(lián)菜單示例
這篇文章主要介紹了jQuery+ajax實(shí)現(xiàn)無(wú)刷新級(jí)聯(lián)菜單示例,代碼很完整,也非常實(shí)用,有需要的小伙伴可以參考下。2015-05-05jQuery實(shí)現(xiàn)給頁(yè)面換膚的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)給頁(yè)面換膚的方法,涉及jQuery頁(yè)面元素的選擇與樣式的操作,需要的朋友可以參考下2015-05-05jQuery中clone()函數(shù)實(shí)現(xiàn)表單中增加和減少輸入項(xiàng)
這篇文章給大家介紹了jQuery中clone()函數(shù)實(shí)現(xiàn)表單中增加和減少輸入項(xiàng)的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-05-05jquery插件實(shí)現(xiàn)鼠標(biāo)隱藏
這篇文章主要為大家詳細(xì)介紹了jquery插件實(shí)現(xiàn)鼠標(biāo)隱藏,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05jquery bind(click)傳參讓列表中每行綁定一個(gè)事件
用jquey bind 點(diǎn)擊事件時(shí),傳參不注意可能會(huì)導(dǎo)致點(diǎn)擊每一行都是顯示相同內(nèi)容的情況,下面有個(gè)示例,感興趣的朋友可以參考下2014-08-08jquery實(shí)現(xiàn)鼠標(biāo)滑過(guò)小圖查看大圖的方法
這篇文章主要介紹了jquery實(shí)現(xiàn)鼠標(biāo)滑過(guò)小圖查看大圖的方法,涉及jquery鼠標(biāo)事件及圖片樣式動(dòng)態(tài)操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07jqGrid翻頁(yè)時(shí)數(shù)據(jù)選中丟失問(wèn)題的解決辦法
我在項(xiàng)目中使用jqGrid時(shí),采用異步加載服務(wù)器數(shù)據(jù),例如點(diǎn)擊翻頁(yè)、搜索時(shí)都重新加載數(shù)據(jù)。這篇文章主要介紹了jqGrid翻頁(yè)時(shí)數(shù)據(jù)選中丟失問(wèn)題,需要的朋友可以參考下2017-02-02