以下是我测试的简单验证码:
jQuery.validator.addMethod("oneTypeChecked", function (value, element) {
return false; //$(':checkbox:checked') > 0
}, "Check one or more type");
$("#RequestCreateForm").validate({
rules: {
ChkBoxType1: { oneTypeChecked: true }
}
});
但是当我提交表单时,我的方法oneTypeChecked永远不会被调用。 为什么呢?
这是我的HTML代码:
<div class="editor-field">
<input type="checkbox" id="ChkBoxType2" name="requestTypeIds2" value="2">Type 2
<input type="checkbox" id="ChkBoxType1" name="requestTypeIds1" value="1">Type 1
<input type="checkbox" id="ChkBoxType3" name="requestTypeIds3" value="3">Type 3
</div>
非常感谢!
答案 0 :(得分:6)
验证插件根据名称属性而不是id工作。尝试更改输入中的name属性。
答案 1 :(得分:2)
使用此html
<form id="RequestCreateForm" action="" method="post">
<div class="editor-field">
<input type="checkbox" class="oneTypeChecked" name="requestTypeIds2" value="2">Type 2
<input type="checkbox" class="oneTypeChecked" name="requestTypeIds1" value="1">Type 1
<input type="checkbox" class="oneTypeChecked" name="requestTypeIds3" value="3">Type 3
</div>
<input type="submit" value="submit" />
</form>
和这个jquery
jQuery.validator.addMethod("oneTypeChecked", function(value, element) {
return $('.oneTypeChecked:checked') > 0
}, "Check one or more type");
$("#RequestCreateForm").validate({
rules: {
ChkBoxType1: {
oneTypeChecked: true
}
}
});
你会得到你想要的结果
这是一个WORKING DEMO
答案 2 :(得分:0)
据我了解,如果您没有添加所需内容,则该内容将有效,因为它未经过检查。
rules: {
ChkBoxType1: { required : true, oneTypeChecked: true }
}