JavaScript函数中的String或Null检查

时间:2015-10-17 06:13:30

标签: javascript null logical-operators

单击按钮时,应验证id值,如果值不是NA,则应加载页面,否则应抛出警报。

 <a href="#" id="check" class="button" onclick="id_check()">View ID</a><br><br>

function id_check() {
    if (id != "NA" || (id != null)) {
        // load diff page
    } else {
        alert("Something Wrong");

    }
}

但是或(||)的if条件没有按预期工作。当我刚刚比较id!=&#34; NA&#34;时它工作正常。我在这里缺少什么?

3 个答案:

答案 0 :(得分:4)

这里要理解的重要一点是||运算符会使结果短路。这意味着,如果第一个表达式的计算结果是真实的,那么该值将立即返回。第二个表达式根本不会被评估。

在您的情况下,id != "NA" || id != null,如果数据为null,则id != "NA"检查将返回true。所以,第二部分根本没有检查过。

由于您希望输入数据不是NAnull,因此您可以在此使用&&运算符,例如id != "NA" && id != null

注意: if != null如果falseid,则会返回undefined,因为!=会强制删除表达式。因此,最好使用严格的相等比较运算符。因此,条件将变为if id !== "NA" && id !== null

答案 1 :(得分:3)

您的条件应为id != "NA" && id != null,因为您希望ID与NA 不同null

答案 2 :(得分:0)

请使用以下代码,以便成功显示&#39;如果id不为空,则将文本作为消息。

<a href="#" id="check" class="button" onclick="id_check(this.id)">View ID</a>

    <script>
     function id_check (id)
                 {
                //if block will execute if element id value isn't empty or Null
                     if ( id )
                     {

                        alert("Id isn't empty");
                     }else
                     {
                         alert ("Id is empty");

                     }
                 }
    </script>

我们需要将控制的id传递给function.After传递id后我们可以根据我们的要求进行验证。

this.id - 它会将元素的id作为参数返回到&#39; id_check&#39;功能

请参阅以下链接以验证答案 - http://jsfiddle.net/pdhsob8s/4/