【发布时间】:2021-10-13 12:28:40
【问题描述】:
我在一个页面上有多个动态生成的表单(用于上传文件)需要验证(尽管一次提交一个表单):
格式是这样的(其中表单的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.
}
});
});
【问题讨论】:
-
它不起作用,因为插件不是由
<button>触发的,除非您使用type="submit"属性。因此,尝试使用submitHandler将按钮更改为提交是永远不会发生的。除非您首先使用type="submit"button或input,否则它不会触发submitHandler函数。 -
@Sparky - 当然是
type=submit按钮,这只是简化的代码。为了清楚起见,添加了。 -
“我也不需要验证所有表单 - 显然只需要验证提交的表单。下面的每个循环都会发生这种情况吗?” - 当然不是.
.validate()方法只是每个表单的初始化设置。
标签: jquery forms jquery-validate