【问题标题】:On submission of 2nd form, first form is being validated - jquery validate在提交第二个表单时,正在验证第一个表单 - 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

标签: jquery validation jquery-plugins


【解决方案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();
})

【讨论】:

    猜你喜欢
    • 2016-11-10
    • 2017-07-28
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多