希望soemone可以帮助我编写比我自己想出的更好的代码。
我正在使用jquery验证插件。如果选择了某些选项,我有一些强制性的字段。
以下代码运行正常。但问题是,我的'OR'列表比我放在这里的时间长得多。它不仅需要应用于'directorName',还需要应用于一长串输入,选择等等。
我的问题是..如何整理RETURN中包含的代码? (所以我不必继续重复我的'OR'。我猜我需要一个函数,但我不确定语法)
$("#myForm").validate({
rules: {
directorsName : {
required: function(element) {
return ( $('#account_for').val() == "Joint" || $('#directors_number').val() == "2" || $('#directors_number').val() == "3" );
}
}
}
});
提前致谢
答案 0 :(得分: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
},
如果您还没有阅读过,我建议您阅读此代码来自coldFusion Jedi的3部分博客。
答案 1 :(得分:1)
您可以执行此操作,使用$.inArray()
跨浏览器支持:
$("#myForm").validate({
rules: {
directorsName : {
required: function(element) {
return $('#account_for').val() == "Joint" ||
$.inArray($('#directors_number').val(), ['2','3']);
}
}
}
});
答案 2 :(得分:0)
list = ['1', '2', '3', '...'];
return $('#account_for').val() == "Joint" || list.indexOf($('#directors_number').val()) != -1;