serialize() 方法通過序列化表單值,創(chuàng)建 URL 編碼文本字符串。代替了一個(gè)一個(gè)傳參的方式
以往寫的ajax傳參方式
$.ajax({
url : "${ctx}/SJStandardDamPartition/insertOrUpdateDamPartition",
type : "post",
dataType : "json",
data: {beginsectionid:function(){
return $('#number option:selected').val();
},
beginelevation:function(){
return $('#onset').val();
},
endelevation:function(){
return $('#end').val();
}
},
success : function(result) {
}
});
用serialize()的傳參方式
var param = $("#standForm").serialize();
$.ajax({
url : "${ctx}/SJStandardStandardInfo/insertOrUpdateStandardInfo",
type : "post",
dataType : "json",
data: param,
success : function(result) {
}
});
當(dāng)我們?cè)谝恍┥晕?fù)雜的業(yè)務(wù)時(shí),可能會(huì)遇到需要多個(gè)表單form在同一個(gè)頁面的情況,但是提交一個(gè)表單以后不想頁面刷新或者跳轉(zhuǎn),那么我們考慮到的就是Ajax提交表單,那么如何讓jQuery的validator插件也可以對(duì)異步提交的表單進(jìn)行驗(yàn)證呢?我們繼續(xù)往下看。
在這里,我就用網(wǎng)絡(luò)上的一個(gè)例子來說明好了。
下面是一個(gè)比較常見的jquery .ajax提交表單的寫法
$("#submitButton").click(function(){
//序列化表單
var param = $("#leaveSave").serialize();
$.ajax({
url : "leaveSave.action",
type : "post",
dataType : "json",
data: param,
success : function(result) {
if(result=='success') {
location.href='allRequisitionList.action';
} else if(result.startWith("error_")){
$("#errorMessage").html(result.substring(6));
} else {
//返回的結(jié)果轉(zhuǎn)換成JSON數(shù)據(jù)
var jsonObj = eval('('+result+')');
startTime = $("#startdate").val();
endTime = $("#enddate").val();
hour = jsonObj.hour;
reason = jsonObj.reason;
replaceDom(startTime,endTime,hour,reason);
}
}
});
});
如果想用ajax提交表單,還想用jquery的validate進(jìn)行驗(yàn)證,那么可以這樣解決:表單還是正常編寫的表單內(nèi)容,type還是submit類型,只不過在validate驗(yàn)證通過后的方法中使用ajax提交表單
$("#saveWorkExtra").validate({
onsubmit:true,// 是否在提交是驗(yàn)證
onfocusout:false,// 是否在獲取焦點(diǎn)時(shí)驗(yàn)證
onkeyup :false,// 是否在敲擊鍵盤時(shí)驗(yàn)證
rules: {
....
},
messages:{
....
},
submitHandler: function(form) { //通過之后回調(diào)
var param = $("#saveToWorkExtra").serialize();
$.ajax({
url : "workExtraChange.action",
type : "post",
dataType : "json",
data: param,
success : function(result) {
if(result=='success') {
location.href='allRequisitionList.action';
} else {
var jsonObj = eval('('+result+')');
}
}
});
},
invalidHandler: function(form, validator) { //不通過回調(diào)
return false;
}
});
總結(jié)
以上所述是小編給大家介紹的jQuery Validator驗(yàn)證Ajax提交表單的方法和Ajax傳參的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- bootstrap Validator 模態(tài)框、jsp、表單驗(yàn)證 Ajax提交功能
- jquery formValidator插件ajax驗(yàn)證 內(nèi)容不做任何修改再離開提示錯(cuò)誤的bug解決方法
- formvalidator驗(yàn)證插件中有關(guān)ajax驗(yàn)證問題
- formValidator3.3的ajaxValidator一些異常分析
- asp.net ajaxControlToolkit ValidatorCalloutExtender的簡單用法