我想为jQuery validate插件编写一个新的验证方法。我有两个选择框,当我们选择yes
的值时,我想抛出错误?
我尝试了几种不同的方法,但我无法得到任何工作。
以下是我的尝试:
$.validator.addMethod('noDuplicate0', function(value, element, params) {
value = $.makeArray($(element).val()) || [];
var other = $.makeArray($(input[name=nightFreeRoomOnly]).val()) || [];
return $.inArray('0', value) == -1 || $.inArray('0', other) == -1; },'Both options can not be set to yes');
}
有什么想法吗?
答案 0 :(得分:1)
您必须添加自己的自定义规则。
添加notEqual
方法
$.validator.addMethod("notEqual", function(value, element, params) {
return (value != $(param).find('option:selected').val() || value!='yes');
}, jQuery.format("Values A and B Cannot be equal"));
然后从验证中运行此自定义方法
$("#myform").validate({
rules: {
A: "required",
B: {
notEqual: "#A"
}
}
});
其中A和B是您的2个选择字段ID
答案 1 :(得分:0)
你走在正确的轨道上......使用addMethod
。如果您的表单如下所示:
<form id="myform">
<select name="select1" id="select1">
<option selected="selected">yes</option>
<option>no</option>
</select>
<select name="select2" id="select2">
<option selected="selected">yes</option>
<option>no</option>
</select>
<br><input type="submit">
</form>
你可以制作一个这样的验证脚本:
$.validator.addMethod('notbothyes', function(val, el, param) {
return (val != 'yes' || ('yes' != $(param).find('option:selected').val()));
}, 'These fields cannot both be yes');
$("#myform").validate({
rules: {
select1: {
notbothyes: '#select2'
},
select2: {
notbothyes: '#select1'
}
}
});
在此处查看此行动:http://jsfiddle.net/ryleyb/FtUPq/1/