在我的頁面上,我有3個完整的表單,每個表單都有自己的提交按鈕,每個表單和按鈕都有不同的id。Jquery.validate - 一頁 - 多個表單,一個提交好,其他不要
<form action="" method="post" class="form-horizontal" id="formA">
...
<button id="formASend" type="submit" class="btn"> Submit</button>
</form>
<form action="" method="post" class="form-horizontal" id="formB">
...
<button id="formBSend" type="submit" class="btn"> Submit</button>
</form>
<form action="" method="post" class="form-horizontal" id="formC">
...
<button id="formCSend" type="submit" class="btn"> Submit</button>
</form>
在javascript中,我爲每個下面的邏輯提交按鈕:
$.validator.setDefaults({
debug:true,
errorElement: 'span', //default input error message container
errorClass: 'help-inline', // default input error message class
focusInvalid: false, // do not focus the last invalid input)
highlight: function (element) { // hightlight error inputs
$(element).closest('.control-group').addClass('error'); // set error class to the control group
},
unhighlight: function (element) { // revert the change dony by hightlight
$(element)
.closest('.control-group').removeClass('error'); // set error class to the control group
}
});
$(function() {
var formA = $('#formA');
// init validator obj and set the rules
formA.validate({
rules: {
...
}
});
formA.submit(function() {
return formA.valid();
});
var formB = $('#formB');
// init validator obj and set the rules
formB.validate({
rules: {
...
}
});
formB.submit(function() {
return formB.valid();
});
var formC = $('#formC');
// init validator obj and set the rules
formC.validate({
rules: {
...
}
});
formC.submit(function() {
return formC.valid();
});
});
提交工作確定爲第一種形式,並且不工作的其他兩個。我用DOMLint檢查了html索引,並且沒有問題。點擊事件被觸發,表單有效,提交返回true,但不提交。
驗證正常工作,只驗證提交的表單。
如何對每個表單應用不同的規則?
可能的解決方法
$.validator.setDefaults({
debug:true,
errorElement: 'span', //default input error message container
errorClass: 'help-inline', // default input error message class
focusInvalid: false, // do not focus the last invalid input)
highlight: function (element) { // hightlight error inputs
$(element).closest('.control-group').addClass('error'); // set error class to the control group
},
unhighlight: function (element) { // revert the change dony by hightlight
$(element)
.closest('.control-group').removeClass('error'); // set error class to the control group
},
submitHandler: function (form) {
if ($(form).valid()) {
form.submit();
}
}
});
$(function() {
var formA = $('#formA');
// init validator obj and set the rules
formA.validate({
rules: {
...
}
});
var formB = $('#formB');
// init validator obj and set the rules
formB.validate({
rules: {
...
}
});
var formC = $('#formC');
// init validator obj and set the rules
formC.validate({
rules: {
...
}
});
});
添加提交處理程序,返回提交事件回到行動。
你有3'.click()'s?或者只是一個^以上? – dunli 2013-04-04 09:58:07
你可以分享其他處理程序的代碼嗎? – Devesh 2013-04-04 09:59:55
@dunli 3'.click()',是的。去除他們也沒有幫助。刪除提交處理程序也沒有幫助。 – Neara 2013-04-04 10:09:45