在提交第二个表单时,正在验证第一个表单 - 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 事件而不是 .clickform.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的主要内容,如果未能解决你的问题,请参考以下文章

javascript 中两个表单如何分别提交

两个模型表单一个视图表单验证不显示

命令外部字段值随表格发送

通过一次提交发送双表单,同时将电子邮件字段从第一个表单拉到第二个表单

使用 react 和 EmailJs 在表单中通过 onSubmit 传递第二个参数

如何使用 Angular 2 在单个 ts 文件中编写 2 个表单验证?