簡體   English   中英

如果滿足語句條件,但內容未執行?

[英]If statement condition is met, but contents not executed?

我有兩個if()語句,它們的條件都滿足<select><input>表單字段中的默認值,我已經通過將值分配給變量並寫入變量來進行測試。 0Url )。

但是,似乎兩個if()語句的內容都不能正確執行。

這是我的JSFiddle的鏈接: http : //jsfiddle.net/cfRAk/2/

對此原因的任何編輯/答案將不勝感激!

更改此行:

var geo_select_val = $('select[name=g_country\\[1\\]]').val();  

對此:

var geo_select_val = parseInt($('select[name=g_country\\[1\\]]').val());  

問題是geo_select_val實際上是"0"而不是0 如果字符串為空,則將字符串轉換為布爾值只會導致false "0"不為空,因此被評估為true。 由於您要使用!geo_select_val ,因此它永遠不會進入。

注意:僅當您確保所有值均為數字時,此修補程序才有效。 如果不是這種情況,請檢查是否等於"0"

這是您要詢問的代碼:

$('#post-form').click( function() {  
    var geo_select_val = $('select[name=g_country\\[1\\]]').val();          
    if(!geo_select_val) {
        var geo_url_val = $('input[name=g_url\\[1\\]]').val();
        if(geo_url_val != "http://google.com") {
            $('#notification').html("You need to enter a valid url");
        }
    }
});

當我在此click函數中設置斷點,然后單擊Post Form div時, geo_select_val返回為"0" ,這意味着if(!geo_select_val)將失敗,因為geo_select_val確實具有一個值,因此將永遠不會執行第一個if條件。

也許您希望第一個if條件為:

if (geo_select_val != "0") {

它會告訴您是否選擇了除默認值以外的其他值(假設您將其他選項添加到具有不同值的select標記中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM