2015-10-17 111 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/