我对Jquery还是很陌生,我有这个jquery来检查是否选中了复选框。如果没有,则该表单不应该执行。
仅使用#validCheck
id可以正常工作,但是当我添加#feeCheck
时,检查一个巫婆没关系,该表格将执行。
我想要的是必须选中两个复选框才能执行表单。如果未选中它们,则不应执行该表单。
if(!($('#validCheckbox , #feeCheckbox').prop('checked')))
{
errorMessage += "You must check the checkboxes to continue!<br/>";
errorCounter++;
ok = false;
$("#errorDiv").css({"backgroundColor": "#f9f9f9", "color": "#D2002C", "padding": "10px"});
$("#errorDiv").html(errorMessage);
}
我真的必须为每个复选框写两个单独的if语句吗?
我正在将脚本用于多种形式,其中一些具有两个复选框,有些仅具有#validCheck
有人可以帮我吗
答案 0 :(得分:2)
jQuery对对象的属性不执行逻辑操作,因此您需要拆分选择器
if(!($('#validCheckbox').prop('checked') && $('#feeCheckbox').prop('checked')))
答案 1 :(得分:1)
是的,您需要两个单独的查询。从documentation ...
获取匹配元素集中第一个元素的属性值
所以您需要做到...
if(!($('#validCheckbox').prop('checked') && $('#feeCheckbox').prop('checked')))
为响应OP对madalinivascu的评论,以下内容适用于#feeCheckbox
不存在的情况...
var $feeCheckbox = $("#feeCheckbox");
if (!$("#validCheckbox").prop("checked") || ($feeCheckbox.length > 0 && !$feeCheckbox.prop("checked"))) {
...
}
结果是,如果#validCheckbox
设置为false,则输入if
... 或,如果找到#feeCheckbox
,并且,您输入if
设置为false。
通过将jquery对象放入变量中,您不必多次查找它。
答案 2 :(得分:-1)
if(!$('#validCheckbox').is(':checked') && !$('#feeCheckbox').is(':checked'))