2015-10-17 28 views
1

当按钮单击时,应验证id值,如果值不是NA或null,则应加载页面,否则应该抛出警报。JavaScript函数中的字符串或空值检查

<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"); 

    } 
} 

但是,如果条件为或(||)未按预期工作。当我比较id!=“NA”时它工作正常。我在这里错过了什么?

+0

尝试==,你也可能要包括==未定义的检查,以及! – potatopeelings

+0

你也可以检查if(id){..} else {...} –

+0

@potatopeelings:比较'id!= null'已经命中'undefined' ... – dandavis

回答

4

这里要了解的重要一点是||操作员短路了结果。这意味着,如果第一个表达式评估为真,那么该值将立即返回。第二个表达式根本不会被评估。如果数据是null,那么id != "NA"检查将返回true。所以,第二部分根本没有被检查。

当你想输入的数据不NAnull,您可以使用&&运营商这里,像这样id != "NA" && id != null

注:if != null将返回false,如果idundefined,因为!=将强制表达式。所以,最好使用严格的相等比较运算符。因此,条件将成为if id !== "NA" && id !== null

3

你的条件应该是id != "NA" && id != null只要你想的ID从NAnull太明显被distint。

0

请使用以下代码,如果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给函数。通过id后我们可以根据我们的要求验证它。

this.id - 它会将id的元素作为参数返回给'id_check'函数。

请参考以下链接确认答案 - ! http://jsfiddle.net/pdhsob8s/4/