Javascript 改进我的jquery验证插件代码

Javascript 改进我的jquery验证插件代码,javascript,jquery,Javascript,Jquery,只是希望soemone能帮助我写出比我自己能写出的更好的代码 我正在使用jquery验证插件。我有一些字段只有在选择了某些选项时才是必需的 下面的代码工作正常。但问题是,我列出的“或”比我在这里列出的要长得多。它不仅需要应用于“董事姓名”,还需要应用于一长串输入、选择等 我的问题是。。如何包装返回中包含的代码? (所以我不必重复我的'OR's。我想我需要一个函数,但我不确定语法) 提前感谢这里有一个自定义验证器的代码片段。您可以将相同的语法应用于您自己的自定义验证需求 list = ['1',

只是希望soemone能帮助我写出比我自己能写出的更好的代码

我正在使用jquery验证插件。我有一些字段只有在选择了某些选项时才是必需的

下面的代码工作正常。但问题是,我列出的“或”比我在这里列出的要长得多。它不仅需要应用于“董事姓名”,还需要应用于一长串输入、选择等

我的问题是。。如何包装返回中包含的代码? (所以我不必重复我的'OR's。我想我需要一个函数,但我不确定语法)


提前感谢

这里有一个自定义验证器的代码片段。您可以将相同的语法应用于您自己的自定义验证需求

list = ['1', '2', '3', '...'];
return $('#account_for').val() == "Joint" || list.indexOf($('#directors_number').val()) != -1;
$.validator.addMethod("noanon", function(value) {
          return value.toLowerCase().indexOf("anonymous") != 0;
      }, 'Do not hide behind the cover of anonymity')
然后,您可以像使用任何内置验证规则一样使用它,如:

name: {
       required: true,
       minlength: 2,
       noanon: true
  },

如果您还没有阅读,我建议您阅读由三部分组成的博客,该代码来自于。

您可以这样做,跨浏览器支持使用:


请注意,IE不支持
Array.prototype.indexOf
方法,但是可以包括该方法的一部分来支持它。
name: {
       required: true,
       minlength: 2,
       noanon: true
  },
$("#myForm").validate({
 rules: {
  directorsName : { 
   required: function(element) {
     return $('#account_for').val() == "Joint" || 
            $.inArray($('#directors_number').val(), ['2','3']);
   }
  }
 }
});