Javascript Not(a == b)||不(c == b)

时间:2013-03-16 19:18:36

标签: javascript comparison logical-operators

我一直试图让以下比较运算符起作用。第二个'if'总是执行代码中的下一个语句。我想要的是能够检测到何时使用entryType或者followupEntryType不等于字符串“Long Term Care”这里是代码......

function getComboB(sel) {

    var value = sel.options[sel.selectedIndex].value;
    if (value == "Rehab") {
        if (!(document.getElementById('entryType').value == "Long Term Care") || !(document.getElementById('followupEntryType').value == "Long Term Care")) {
            document.getElementById('followupEntryType').value = "Long Term Care";
            alert("short-term rehab code");
            return true;
        } else {
            alert("long-term rehab code");
            return true;
        }
    }
}

3 个答案:

答案 0 :(得分:1)

这是发生了什么,是你想要的吗?

if(true || true)
{
console.log('second check will not be executed');
}

if(true || false)
{
console.log('second check will not be executed');
}

if(false || false)
{
console.log('second check will be executed');
}

if(false || true)
{
console.log('second check will be executed');
}

如果您想检查EITHER是否为假,则应使用&&,并在else块中移动代码

答案 1 :(得分:0)

function getComboB(sel) {

var value = sel.options[sel.selectedIndex].value; 
if (value == "Rehab") {
  if (document.getElementById('entryType').value != "Long Term Care" && document.getElementById('followupEntryType').value != "Long Term Care") {
    document.getElementById('followupEntryType').value = "Long Term Care";
    alert ("short-term rehab code");
    return true;
  } else {
    alert ("long-term rehab code");
    return true;
  }
}

答案 2 :(得分:0)

不,第二个if并不总是执行下一个语句。如果两个值均为"Long Term Care",则它将执行else部分中的代码。即:

<input type="text" id="entryType" value="Long Term Care" />
<input type="text" id="followupEntryType" value="Long Term Care" />

演示:http://jsfiddle.net/QW43B/

如果您希望条件为真,如果两个值都与"Long Term Care"不同(即如果任何值为else,它将进入"Long Term Care"),您应该使用{ {1}}运算符代替:

&&