2017-02-24 65 views
-1

我有一個輸入,我想檢查它是否爲空。我使用維基百科的API來獲取信息,這是AJAX部分:檢查元素值是否爲空或與Jquery

$.ajax({ 
    type: 'GET', 
    url: searchedUrl, 
    async: false, 
    dataType: 'json', 
    success: function(data){ 

     var length = data[1].length; 
     var inputValue = $('#searchInput').val(); 
     console.log(inputValue); 

     if (!$('#searchInput').val()){ 
     error = true; 
     console.log('err'); 

     } else { 
     if (error = true){ 
      $('#errorMsg').html('Search error').fadeOut(); 
     } 
     $('.title').css('margin-top', '30px'); 
     $('#output').removeClass('hidden'); 
      for (var i = 0; i < length; i++){ 
      $('#output').prepend('<li><a href='+data[3][i]+'>'+data[1][i]+'</a><br>'+data[2][i]+'</li>'); 
      } 
     } 
    }, 
    error: function(err){ 
    error = true; 
    $('#errorMsg').html('Search error').fadeIn(); 
    } 
}); 

然而,當它成功,我希望它檢查輸入的值是否爲空。我使用IF條件,但它不會在控制檯中寫入'err'。這就像它忽略了一切,如果值是空的。我也試過這樣的條件:

if (inputValue !== ''){ 

// Error; 

} 

但它不工作。

PS:這是我的jsfiddle:https://jsfiddle.net/dietic/sdfu967y/

謝謝您的幫助!

+0

'if(inputValue.length){...}'!如果長度爲'0',那麼'if'主體將不會被執行。 –

+0

你爲什麼不放一個調試器,看看那個時候有什麼價值? –

+0

值是「」但它仍然沒有任何作用。 –

回答

0

感謝您的答案,但我發現它不工作。 我嘗試檢查,如果在該行有數據或者之前沒有得到數據的長度:

success: function(data){ 

    var length = data[1].length; 
    var inputValue = $('#searchInput').val(); 
    console.log(inputValue); 

它把var length = data[1].length;後,我檢查了輸入和它的工作。

謝謝!

1

您正在進行!==檢查,檢查類型和值。這意味着如果inputValuenullundefined,您的inputValue !== ''將是true

爲了防止這種情況,根本就if (inputValue) { ... }檢查輸入值不是nullundefined'',或0

+0

這不起作用。我會在一秒鐘後發表小提琴。 –

+0

https://jsfiddle.net/dietic/sdfu967y/ –

+0

在JS第25行中,你有'if(error = true)'應該是'if(error == true)'。您應該也可能返回或拋出該函數以防止運行其餘部分。 –

-1

你可以寫只是如果($( '#searchInput')。VAL())

+0

這就是我所擁有的。 –

+0

對不起 - 沒有想法結束,所以嘗試-if(!($('#searchInput').val()))也許幫助... –

1

我不知道你正試圖在這裏做。但讓我澄清這一點。

您的inputValue可以是undefined,null"have something"。如果您撥打if(inputValue) // undefined or null or "",它將等於if(false)

如果if(inputValue) // "blah blah"它將等於if(true)

因此,首先您需要先檢查它是否是null or undefined,如果您想確保它不是空的,請致電.length

+0

我剛剛發佈哈哈哈,我發現之前你發佈的答案。您可以查看我前一段時間在Liam Gray所做的評論。這是正確的答案+1。不管怎麼說,多謝拉! –

+0

這在技術上是錯誤的,'如果(inputValue)'對於'null','undefined',*和*''''將是錯誤的。即使容易混淆的長度爲0的數組爲真,長度爲0的字符串也是錯誤的。 –