复选框的if语句中的两个#id

时间:2019-05-10 11:27:25

标签: jquery checkbox

我对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

有人可以帮我吗

3 个答案:

答案 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'))