在提交第二个表单时,正在验证第一个表单 - jquery validate
Posted
技术标签:
【中文标题】在提交第二个表单时,正在验证第一个表单 - jquery validate【英文标题】:On submission of 2nd form, first form is being validated - jquery validate 【发布时间】:2015-08-24 07:11:10 【问题描述】:在提交第二个表单时,正在验证第一个表单,两个表单都是独立的,具有单独的提交按钮,并且都使用 jquery 验证器插件进行验证。
这是我的代码:
$("#addVehicleForm,#discountInfoForm,#ihqform,#saveReturnForm,#driversForm").validate(
// stuff here
)
#saveReturnForm
,#driversForm
这些是我在同一validator
plugin method
中传递的ID。
我正在尝试通过这样的点击进行验证:
$("#my-submit-button-name").click(function()
$(this).submit();
)
注意:两个表单都有不同的提交按钮
【问题讨论】:
为什么不单独对每个表单进行验证?所有表格的规则都一样吗? 我不想重复突出显示、错误提示和其他内容@user1354678 【参考方案1】:它们绑定到同一个事件,所以每个表单都会被调用。而是使用这个:
$("#addVehicleForm,#discountInfoForm,#ihqform,#saveReturnForm,#driversForm").click(function()
$(this).validate( //Do your work here )
)
);
【讨论】:
您可能需要使用.submit
事件而不是 .click
或 form
或 .on('submit,
我仍然不确定..你是否得到了我的问题..因为我只是想验证我的一个表格,但 4 个表格两个在同一页面上,所以两者都得到验证
我相信它们都被提交了,因为您正在对它们都应用一种验证方法。您需要分别为它们分别应用validate
。有关详细信息,请参阅我的答案。【参考方案2】:
我几乎在每个项目中都使用 jQuery Validate。我编写了以下语句来对每个表单进行验证。关键是each()
语句。 each()
语句允许您在每个表单元素上分别运行 validate()
。
$('form').each(function()
$(this).validate(
// stuff here
);
);
或者在你的情况下
$('#addVehicleForm, #discountInfoForm, #ihqform, #saveReturnForm, #driversForm').each(function()
$(this).validate(
// stuff here
);
);
此外,如果您有自定义按钮来提交表单,您也可以这样做。但你可能应该只使用<input type='submit' value='Submit' />
$("#my-submit-button-name").on('click', function()
$(this).parents('form').submit();
)
【讨论】:
以上是关于在提交第二个表单时,正在验证第一个表单 - jquery validate的主要内容,如果未能解决你的问题,请参考以下文章
通过一次提交发送双表单,同时将电子邮件字段从第一个表单拉到第二个表单