我正在尝试制作一个仅在取消选中复选框时验证 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。
答案 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');
}