代码之家  ›  专栏  ›  技术社区  ›  jett

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

  •  1
  • jett  · 技术社区  · 13 年前

    我目前有两个相同的联系表格正在一个网页上使用。一个在每一页上——在横幅中,另一个版本在联系人页面的主要部分。这是我用来验证它的方法:

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

    然而,当我在其中一个表单上单击提交时,另一个表单(未使用的表单)会显示错误。我不希望这个人必须同时填写这两份表格(因为它们是完全相同的表格),并且有点困惑从这里开始该怎么办。

    3 回复  |  直到 13 年前
        1
  •  2
  •   jett    13 年前

    根据xnnyygn的回答,我最终添加了单独的.validate规则,当按类或窗体执行时,这将不起作用,并显示第一次选择错误结果。

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

    我最终在这里使用了两个id,而不是一个类或表单选择器。否则是行不通的。经验教训,使用jquery.validator必须使用id。

        2
  •  1
  •   xnnyygn    13 年前

    这是我的 test HTML 从…起 http://docs.jquery.com/Plugins/Validation#source ,添加了一个具有相同类的重复表单。

    我曾尝试直接调用validate,但当我按下第二个提交按钮时,第一个表单已被验证。但是,单独调用validate效果很好。

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

        3
  •  0
  •   Jan    13 年前

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

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