一个页面上的jquery.validator和两个联系表单将在提交时验证空的一个

时间:2012-08-22 07:21:19

标签: javascript jquery html web validation

我目前在网页上使用了两个相同的联系表单。一个在横幅中的每个页面上,而另一个版本在联系页面本身的主要部分中。这就是我用它来验证它:

$(".contactform").each(function() {
    $(this).validate();
});

然而,当我在任一表单上单击提交时,其中相反的一个(未使用的表单)返回显示错误。我不希望这个人必须填写两个(因为它们是完全相同的形式),并且对从哪里开始有点困惑。

3 个答案:

答案 0 :(得分:2)

根据xnnyygn的回答我最终做的是按id添加单独的.validate规则,当按类或表单完成时,这将无法工作并显示第一个选择错误结果。

$("#contactform1").validate({
  rules: {
    field: {
      required: true
    }
  }
});

$("#contactform2").validate({
  rules: {
    field: {
      required: true

    }
  }
});


$(document).ready(function(){
  $("#contactform1").validate();
  $("#contactform2").validate();
});

我最终在这里使用了两个id而不是类或表单选择器。否则将无法正常工作。经验教训,使用jquery.validator,你必须使用id。

答案 1 :(得分:1)

这是我的test HTML,来自http://docs.jquery.com/Plugins/Validation#source,添加了具有相同类别的重复表单。

我试图直接调用validate,但是当我按下第二个提交按钮时,第一个表单已经过验证。但是,单独调用validate运行良好。

验证器“跳转”到另一种形式的原因可能是jquery验证器只接受第一个元素(表单)并应用规则。有关详细信息,请参阅来源。

答案 2 :(得分:0)

不确定它是否解决了这个问题,但您不需要明确使用'.each()'。只需写下:

$(".contactform").validate();