&&
运算符不适用于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
是强制性的。
答案 0 :(得分:0)
我已将其分解,以便更好地说明对原始问题所做的评论。 (注意,第一个语句被更改为嵌套的OR语句,因为变量永远不会同时为1和2)。
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;