AND运算符在3个条件下不起作用

时间:2018-06-13 14:45:37

标签: javascript operators

&&运算符不适用于if语句中的3个条件。它在两个条件下工作。

这是有效的(在两个条件下)

if($("[name='menu[]']:checked").val() == 1 && $("[name='menu[]']:checked").length < 2) {        
    alert('if first menu is checked, you have to check at least one other menu also');    
    return false;
}

这也有效(在两个条件下)

if ($("[name='menu[]']:checked").val() == 2 && $("[name^='submenu']:checked").length == 0) {
    alert('You have to select submenu with second menu');        
    return false;
}

但这有三个条件的错误

if($("[name='menu[]']:checked").val() == 1&2 && $("[name='menu[]']:checked").length < 2 && $("[name^='submenu']:checked").length == 0) {        
    alert('You are selecting first and second menu, but missed submenu of second menu');        
    return false;
}

如果我在最后一个条件之前添加||而不是&&运算符,则可以正常运行。但是OR运算符不符合项目要求,AND是强制性的。

1 个答案:

答案 0 :(得分:0)

我已将其分解,以便更好地说明对原始问题所做的评论。 (注意,第一个语句被更改为嵌套的OR语句,因为变量永远不会同时为1和2)。

&#13;
&#13;
if(
	(
		$("[name='menu[]']:checked").val() == 1 || 
		$("[name='menu[]']:checked").val() == 2
	) && 
	$("[name='menu[]']:checked").length < 2 && 
	$("[name^='submenu']:checked").length == 0
) {        
	alert('You are selecting first and second menu, but missed submenu of second menu');        
	return false;
}
&#13;
&#13;
&#13;