jQuery中的复选框条件验证

时间:2012-03-08 06:23:09

标签: jquery html validation

我正在尝试制作一个仅在取消选中复选框时验证 1下拉列表的表单。我最终得到了以下代码:

HTML

<label for="chk">Checkbox</label>
    <input type="checkbox"  class="chk" ID="chkID" name="mychkBox" checked="checked" value="true"/>

<select ID="dropdownID" name="myDropdown" title="please select something">
    <option value="0">-Select-</option>
        <option value="1">-Option1-</option>
</select>

的Javascript

$("#my-form").validate({
        rules: {
            myDropdown: {
                  required: "#chkID:unchecked",
                                  min:1
            }

        }//rules

});// end
$("#chkID").click(function() {          
      $("#dropdownID").valid();
      alert('gothere');
});

问题是它不起作用,表格仍然提交。 谁知道我错过了什么/做错了什么?

CNC中 如果JSON正在填充下拉列表,是否需要检查任何内容?这会成功吗?我问的原因是,在验证错误之前,表单按预期工作,但之后即使选中或取消选中复选框,也需要下拉列表。这正是我想做的事情......

CNC中 没关系,我只是在选中复选框时隐藏/禁用有问题的下拉列表,因此它不会验证

但是我将答案标记为“已回答”,因为我忘了提及动态加载的内容/ HTML。

2 个答案:

答案 0 :(得分:3)

在HTML标记中,您的select元素名为myDropdown,在您的jQuery代码中,您将其称为details。尝试将验证配置更改为:

rules: { myDropdown: { required: "#chkID:unchecked" } }

修改

此外,select元素中的默认选项应为空值。否则,required规则将始终得到满足:

<option value="">-Select-</option>

我创建了一个jsFiddle,可以完成你需要的东西:http://jsfiddle.net/BGWbu/

答案 1 :(得分:0)

我不确定是否有'未选中'选择器,:S

尝试

"#chkID:not(:checked)"

也可能需要if块,valid()返回boolean

if($("#dropdownID").valid()){
    alert('goThere');
}