2017-02-24 4 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

!==チェックを実行すると、タイプと値の両方がチェックされます。つまり、inputValuenullまたはundefinedの場合、inputValue !== ''trueとなります。これを防止するために

は、単にその入力値がnullundefined''、または0ではありませんチェックするif (inputValue) { ... }を行います。

+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

私はあなたがここでやろうとしているかわかりません。しかし、私はこれを明らかにする。

あなたinputValueundefinednullまたは"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'、*と* ''''に対してfalseならif。混乱して長さ0の配列が真であっても、長さ0の文字列はfalseです。 –

関連する問題