使用类而不是名称值的 jQuery 验证

新手上路,请多包涵

我想使用 jquery 验证插件验证表单,但我无法在 html 中使用“名称”值 - 因为服务器应用程序也使用了这个字段。具体来说,我需要限制从一个组中选中的复选框的数量。 (最多 3 个。)我见过的所有示例都使用每个元素的名称属性。我想做的是改用类,然后为此声明一个规则。

网页格式

这有效:

 <input class="checkBox" type="checkbox" id="i0000zxthy" name="salutation"  value="1" />

这不起作用,但这是我的目标:

 <input class="checkBox" type="checkbox" id="i0000zxthy" name="i0000zxthy"  value="1" />

javascript:

 var validator = $(".formToValidate").validate({
    rules:{
    "salutation":{
             required:true,
        },
        "checkBox":{
             required:true,
          minlength:3  }
   }
});

是否可以这样做 - 有没有一种方法可以在规则选项中定位类而不是名称?还是我必须添加自定义方法?

干杯,马特

原文由 Matt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 279
2 个回答

您可以使用 .rules("add", options) 添加基于该选择器的规则,只需从验证选项中删除您想要分类的任何规则,然后在调用 $(".formToValidate").validate({... }); 之后,执行以下操作:

 $(".checkBox").rules("add", {
  required:true,
  minlength:3
});

原文由 Nick Craver 发布,翻译遵循 CC BY-SA 2.5 许可协议

另一种方法是使用 addClassRules 。它特定于类,而使用选择器和 .rules 的选项更通用。

打电话前

$(form).validate()

像这样使用:

 jQuery.validator.addClassRules('myClassName', {
        required: true /*,
        other rules */
    });

参考: http ://docs.jquery.com/Plugins/Validation/Validator/addClassRules#namerules

对于这种情况,我更喜欢这种语法。

原文由 RicardoS 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题