我想对一个AND运算符使用多个OR,但是在此示例中,即使我填写了#ads-estate-age
,我也会遇到错误。
$('a').click(function() {
if ($('#ads-subsubcategory').val() == 92 || $('#ads-subsubcategory').val() == 103 || $('#ads-subsubcategory').val() == 97 || $('#ads-subsubcategory').val() == 100 && $('#ads-estate-age').val().length <= 0) {
alert('its empty');
} else {
alert('ok');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="ads-subsubcategory" value="92" />
<input type="text" id="ads-estate-age" />
<a>check</a>
我尝试添加括号,但仍然无法正常工作:
$('a').click(function() {
if (($('#ads-subsubcategory').val() == 92) || ($('#ads-subsubcategory').val() == 103) || ($('#ads-subsubcategory').val() == 97) || ($('#ads-subsubcategory').val() == 100) && $('#ads-estate-age').val().length <= 0) {
alert('its empty');
} else {
alert('ok');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="ads-subsubcategory" value="92" />
<input type="text" id="ads-estate-age" />
<a>check</a>
我错过了什么?
答案 0 :(得分:4)
在没有括号的情况下混合OR和AND总是会产生奇怪的结果。
在您的情况下,您需要在OR块周围添加括号,如下所示:
if ((optional || optional2 || optional3) && required) {
//...
}
但是,事实证明,您的条件可以重写-并且在此过程中大大简化了操作以避免重复-因此不需要括号。
let
subcat = $('#ads-subsubcategory').val(),
age = $('#ads-estate-age').val();
if ([92, 103, 97, 100].includes(subcat) && age.length === 0) {
//...
}
注意=== 0
,而不是<= 0
;字符串在逻辑上不能小于零。
答案 1 :(得分:0)
1。(ads-subsubcategory = 92 || 103 || 97 || 100 && ads-estate-age.length <= 0)为错误条件。
2.(ads-subsubcategory = true ||假)如果所有一个条件都为真,且所有条件为假,则条件为假。始终为真。
3.(ads-estate-age.length <= 0)是或否。
4(ads-subsubcategory = true && ads-estate-age.length = false)然后为false。
5.(ads-subsubcategory = false && ads-estate-age.length = false)然后为false。
6.(ads-subsubcategory = true && ads-estate-age.length = true)然后为true。
$(document).ready(function()
{
$('button').click(function() {
if (($('#ads-subsubcategory').val() == 92) || ($('#ads-subsubcategory').val() == 103) ||($('#ads-subsubcategory').val() == 97) || ($('#ads-subsubcategory').val() == 100) && $('#ads-estate-age').val().length <= 0)
{
alert('its empty');
} else {
alert('ok');
}
});
});
<input type="text" id="ads-subsubcategory" value="92" />
<input type="text" id="ads-estate-age" />
<button>check</button>