使用依赖表达式对许多相关复选框/文本字段进行jquery验证

时间:2013-04-12 13:37:57

标签: jquery jquery-validate

我有多个复选框/文本字段相互关联,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对怎么做?有一个简单的方法,还是我必须逐个编写验证规则?

1 个答案:

答案 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();