我有多个复选框/文本字段相互关联,PHP生成,具有不同的ID和名称:
<ul>
<li>
<input type="checkbox" name="cb_1" id="cb_1">
<input type="text" name="txt_1" id="txt_1">
</li>
<li>
<input type="checkbox" name="cb_2" id="cb_2">
<input type="text" name="txt_2" id="txt_2">
</li>
...
<li>
<input type="checkbox" name="cb_N" id="cb_N">
<input type="text" name="txt_N" id="txt_N">
</li>
</ul>
选中每个复选框后,应该需要相关的文本字段
我可以为一对做这个,像这样:
rules: {
txt_1: {
required: "#cb_1:checked"
}
但我的所有N对怎么做?有一个简单的方法,还是我必须逐个编写验证规则?
答案 0 :(得分:1)
编写一个自定义验证规则,查看兄弟复选框以查看它是否已选中。喜欢这个
$.validator.addMethod("requiredWithCheckbox", function (value, element) {
if ($(element).siblings(":checkbox:checked").length) {
return value != '';
}
else {
return true;
}
}, "You've checked the checkbox, now fill in the field");
然后以您喜欢的方式将此规则添加到表单字段中,例如,您可以执行此操作以将规则添加到所有文本字段
$('input[type=text]').addClass('requiredWithCheckbox');
$("form").validate();