jQuery中的复选框条件验证

jQuery中的复选框条件验证,jquery,html,validation,Jquery,Html,Validation,我正在尝试创建一个表单,仅当复选框未选中时才验证1下拉列表。我最终得到了以下代码: HTML 问题是它不起作用,表单仍然提交。 有人知道我错过了什么/做错了什么吗 -编辑- 如果下拉列表是由JSON填充的,是否需要检查任何内容?这样行吗?。我询问的原因是,表单在验证中出现任何错误之前都能按预期工作,但在验证之后,即使复选框被选中或取消选中,它也需要下拉列表。这正是我想要做的 -编辑- 没关系,我只是在选中复选框时隐藏/禁用了有问题的下拉列表,这样它就不会验证了 但我将答案标记为“已回答”,因为我

我正在尝试创建一个表单,仅当复选框未选中时才验证1下拉列表。我最终得到了以下代码:

HTML

问题是它不起作用,表单仍然提交。 有人知道我错过了什么/做错了什么吗

-编辑-
如果下拉列表是由JSON填充的,是否需要检查任何内容?这样行吗?。我询问的原因是,表单在验证中出现任何错误之前都能按预期工作,但在验证之后,即使复选框被选中或取消选中,它也需要下拉列表。这正是我想要做的

-编辑- 没关系,我只是在选中复选框时隐藏/禁用了有问题的下拉列表,这样它就不会验证了


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

我不确定是否有“未选中”的选择器:S

试一试

也可能是您需要一个if块,valid()返回布尔值

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

我不确定是否存在未选中的选择器:S

试一试

也可能是您需要一个if块,valid()返回布尔值

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

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

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

此外,select元素中的默认选项应具有空值。否则将始终满足
所需的
规则:

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

我创建了一个JSFIDLE,它应该可以满足您的需要:

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

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

此外,select元素中的默认选项应具有空值。否则将始终满足
所需的
规则:

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

我创建了一个JSFIDLE,可以满足您的需要:

我看不到您的表单。但选中您正在执行的复选框单击函数$(“#dropdownID”).valid();使用表单id而不是选择器id是错误的。这里的复选框验证--如果我删除:“详细信息:{required:{chkID:unchecked”}则验证运行良好。我尝试使用表单id而不是下拉列表中的表单仍然提交。我看不到您的表单。但选中您正在执行的复选框单击函数$(“#dropdownID”).valid();使用表单id而不是选择器id是错误的。这里的复选框验证---如果我删除:“详细信息:{required:{chkID:unchecked”}则验证运行良好。尝试使用表单id而不是下拉列表中的表单仍然提交。它现在验证,但不关心复选框是否未选中。请参见“我的编辑”以查看我所做的更改问题是select元素中的默认选项具有非空值。我用更多的细节更新了我的答案。如果这个下拉列表是由JSON提供的,我需要检查一下吗?这样行吗?应该也行。验证程序不关心在页面生命周期中如何或何时填充下拉列表,只关心在您调用
.valid()
或提交表单时其选项元素在DOM中的值。它现在验证,但不关心复选框是否未选中。请参见“我的编辑”以查看我所做的更改问题是select元素中的默认选项具有非空值。我用更多的细节更新了我的答案。如果这个下拉列表是由JSON提供的,我需要检查一下吗?这样行吗?应该也行。验证程序不关心在页面生命周期中如何或何时填充下拉列表,只关心在您调用
.valid()
或提交表单时其选项元素在DOM中的值。