jQuery验证插件-根据下拉响应生成所需的复选框组

jQuery验证插件-根据下拉响应生成所需的复选框组,jquery,forms,jquery-validate,conditional,Jquery,Forms,Jquery Validate,Conditional,我第一次将jQuery验证插件与HTML表单一起使用。我习惯于使用普通的javascript来实现这个功能,但我完全喜欢这个插件!不管怎样,我一直在尝试做一些条件验证 场景:我有一个由两部分组成的问题。第一部分是“是/否”下拉列表(必填)。第二部分是一组复选框,如果在上一个下拉列表中选择了“是”,则必须至少选中其中一个复选框 <div> <p><span class="bold large-font">8.</span> Some question

我第一次将jQuery验证插件与HTML表单一起使用。我习惯于使用普通的javascript来实现这个功能,但我完全喜欢这个插件!不管怎样,我一直在尝试做一些条件验证

场景:我有一个由两部分组成的问题。第一部分是“是/否”下拉列表(必填)。第二部分是一组复选框,如果在上一个下拉列表中选择了“是”,则必须至少选中其中一个复选框

<div>
<p><span class="bold large-font">8.</span> Some question to answer Yes or No to...</p>
<div class="margin-left-fifty">
    <select id="Q8" class="Q8" name="Q8">
        <option value="" selected></option>
        <option value="Yes">Yes</option>
        <option value="No">No</option>
    </select>
</div>
<div class="margin-left-fifty">
    <p><span class="underline italic">If Yes,</span> indicate which areas...</p>
</div>
<div class="margin-left-eighty">
    <input id="Q8yesA" class="Q8yes" name="Q8yesA" type="checkbox" value="Yes" />                    
    <label for="Q8yesA"><span class="small-font">a.</span> Option A</label>
    <br />
    <input id="Q8yesB" class="Q8yes" name="Q8yesB" type="checkbox" value="Yes" />                                            
    <label for="Q8yesB"><span class="small-font">b.</span> Option B</label>
    <br />
    <input id="Q8yesC" class="Q8yes" name="Q8yesC" type="checkbox" value="Yes" />                                            
    <label for="Q8yesC"><span class="small-font">c.</span> Option C</label>
    <br />
    <input id="Q8yesD" class="Q8yes" name="Q8yesD" type="checkbox" value="Yes" />                        
    <label for="Q8yesD"><span class="small-font">d.</span> Other</label>
    <input name="Q8yesDlist" type="text" maxlength="255" size="50" value="" placeholder="Please list..." />                    
</div>
我一直在尝试将addMethod封装在If语句中,但无法完全理解它。我甚至不确定这是不是正确的想法


非常感谢您的帮助!谢谢

有几种方法可以做到这一点,而您正在寻找其中一种方法。不过,我想提出一种不同的方法。首先,重新组织复选框使其具有相同的
名称
属性,但不同的
属性是有意义的。这将使它们在jQuery验证中表现得更好。这就是您现在拥有的:

<input id="Q8yesA" class="Q8yes" name="Q8yesA" type="checkbox" value="Yes" />
我已经使用了规则的
依赖表达式
版本


下面是它的实际效果:

在阅读了很多很多帖子后,我想这样的改变一定会发生。我喜欢依赖表达式,非常有用!我的挂起在mySQL表的后端。正如我所说,我之所以有不同的名字是因为这是一个大型调查,当我从mySQL下载CSV给分析师时,我试图避免他们进行任何“文本到列”的操作。我知道这可能超出了您的范围,但您是否有一个建议,将这些值传递给mySQL,以便对它们进行重命名?如果你不…只是好奇没关系。谢谢我不太确定您需要什么,但您可以在通过AJAX请求提交表单数据之前使用
submitHandler
重新调整表单数据?
<input id="Q8yesA" class="Q8yes" name="Q8yesA" type="checkbox" value="Yes" />
<input id="Q8yesA" class="Q8yes" name="Q8yes" type="checkbox" value="Q8yesA" />
rules: {
    Q8: "required",
    Q8yes: {
        required: '#Q8 option[value="Yes"]:selected'
    },
    Q8yesDlist: {
        required: '#Q8yesD:checked'
    }
 }