JavaScript在运行时返回true,但我的逻辑和控制台说它是假的

时间:2017-09-05 20:15:37

标签: javascript if-statement conditional

我在JavaScript中遇到条件问题。逻辑说答案应该是false,并且根据控制台,语句是false,但是当我运行它时,JavaScript说它是真的!

编辑:与呼叫对应的HTML。

<div class="simblaEL form-group" data-drag="P935" id="P935">
    <input type="text" class="form-control input-sm" name="x" id="x" 
     onblur="checkEmp();">      
</div>

Js:

//assume that the value of x is a string different from ''

if(document.getElementById('x').value === ''){
    // do some things
}
else{
    // do other things
}

当我放入控制台document.getElementById('x').value === ''时,它会按预期返回false。当我运行它时,JavaScript处理它就像true一样,跳转到// do some things

我试过了if('' === document.getElementById('x').value),我也试过了

var s = document.getElementById('x').value;
if(s.isEmpty())

var s = document.getElementById('x').value;
if(s.equals(''))

但没有效果。代码在DOM加载后运行,因此它不像是在尝试检查不存在的元素。

1 个答案:

答案 0 :(得分:0)

您的代码似乎运行正常。 我试试这个:

<html lang="en">

<head>
    <title>Document</title>
</head>

<body>

    <input id='x' type="text" value="abc">

    <script>
        if (document.getElementById('x').value === '') {
            // do some things
            alert(true);
        } else {
            // do other things
            alert(false);
        }
    </script>

</body>

</html>