我想提交表单 - 在通过smoke选项(bootstrap 2.0.3)批准了构造窗口之后。这是完美的工作,直到我插入验证,但现在,即使你确认 - 没有任何反应。表格不提交。
这是我的代码,尝试了几个选项。
你们的赞赏表示赞赏!
$("#enroller").validate({
submitHandler: function() {
//tried also: submitHandler: function(form) {
var selectedCount = $(".gradeOption[value!='']").length;
var questionAmount = selectedCount; // count how many fields were filled
smoke.confirm('you are about to submit '+questionAmount+' grades - please confirm.',function(e){
if (e){
$("#enroller").submit();
//tried also: $(form).submit();
}else{
smoke.alert('save was cancelled', {ok:"close"});
}
}, {ok:"yes - save", cancel:"cancel"});
} //submitHandler
}); //validate
答案 0 :(得分:1)
当您使用submitHandler
回调函数时,您必须通过submit
或默认ajax
{{1}将某种form
重新编入其中}。
在action
逻辑的适当位置,添加submitHandler
,会立即触发提交默认$(form).submit();
form
。
action
注意强>:
要使用submitHandler: function(form) { // <- pass in the "form" argument
// your other code
$(form).submit(); // <- trigger default form action
}
,您必须将$(form).submit();
参数传递给该函数。
您的form
代码中必须包含有效的action
属性。
如你所见,它正在运作:http://jsfiddle.net/wD2Qn/
我注意到代码中存在以下语法错误。你有一个大括号<form>
会过早地关闭}
函数,从而打破了jQuery Validate插件。
submitHandler
修改强>
他们的文档非常稀疏但我的猜测是submitHandler: function() {
var selectedCount = $(".gradeOption[value!='']").length;
var questionAmount = selectedCount; // count how many fields were filled
} // <--- what is this?? Prematurely closes 'submitHandler' function
smoke.confirm('you are about to submit '+questionAmount+' grades - please confirm.',function(e){
if (e){
$("#enroller").submit();
//tried also: $(form).submit();
}else{
smoke.alert('save was cancelled', {ok:"close"});
}
}, {ok:"yes - save", cancel:"cancel"});
} //submitHandler
JavaScript插件根本无法在其函数中处理任何jQuery。
代替smoke.js
,尝试使用纯JavaScript版本:
$(form).submit()