使用 jQuery 验证验证和访问多个页面表单
Validating and accessing multiple on-page forms with jQuery validation
我在一个页面上有多个动态生成的表单(用于上传文件)需要验证(尽管表单一次提交一个):
格式是这样的(其中表格id
中的X是一个数字):
<form class="uploader" method="post" action="?task=edit"
id="sectionsX" name="sections"
enctype="multipart/form-data">
<button class=" btn btn-primary" type="submit">Submit</button>
</form>
现在,如果有效,想在提交时更改 button
HTML。
以下代码不起作用:
我也不需要验证所有表单 - 显然只需要提交的表单。下面的 each
循环会发生这种情况吗?
$('.uploader').each(function () {
$(this).validate({
invalidHandler: function(event, validator) {
alert('Please be sure to fill out all mandatory fields');
},
submitHandler: function(form) { // <- pass 'form' argument in
$(this).find("button").html('Processing...').attr("disabled", "disabled");
form.submit(); // <- use 'form' argument here.
}
});
});
为了在 submitHandler
回调函数中使用 $(this)
,您需要将其分配给一个变量。尝试 var myform = $(this)
$('.uploader').each(function() {
var myform = $(this);
myform.validate({
invalidHandler: function(event, validator) {
alert('Please be sure to fill out all mandatory fields');
},
submitHandler: function(form) { // <- pass 'form' argument in
myform.find("button").html('Processing...').attr("disabled", "disabled");
//form.submit(); // <- use 'form' argument here.
}
});
});
我注释掉了 form.submit()
这样您就可以实际看到该按钮已被更改和禁用。
我在一个页面上有多个动态生成的表单(用于上传文件)需要验证(尽管表单一次提交一个):
格式是这样的(其中表格id
中的X是一个数字):
<form class="uploader" method="post" action="?task=edit"
id="sectionsX" name="sections"
enctype="multipart/form-data">
<button class=" btn btn-primary" type="submit">Submit</button>
</form>
现在,如果有效,想在提交时更改 button
HTML。
以下代码不起作用:
我也不需要验证所有表单 - 显然只需要提交的表单。下面的 each
循环会发生这种情况吗?
$('.uploader').each(function () {
$(this).validate({
invalidHandler: function(event, validator) {
alert('Please be sure to fill out all mandatory fields');
},
submitHandler: function(form) { // <- pass 'form' argument in
$(this).find("button").html('Processing...').attr("disabled", "disabled");
form.submit(); // <- use 'form' argument here.
}
});
});
为了在 submitHandler
回调函数中使用 $(this)
,您需要将其分配给一个变量。尝试 var myform = $(this)
$('.uploader').each(function() {
var myform = $(this);
myform.validate({
invalidHandler: function(event, validator) {
alert('Please be sure to fill out all mandatory fields');
},
submitHandler: function(form) { // <- pass 'form' argument in
myform.find("button").html('Processing...').attr("disabled", "disabled");
//form.submit(); // <- use 'form' argument here.
}
});
});
我注释掉了 form.submit()
这样您就可以实际看到该按钮已被更改和禁用。