2017-12-18 8 views
1

私のスクリプトでは、Facebookの検索を開始すると、テーブルにフェッチされたFacebookが追加され、今度はテーブルに2つのFacebookというデータがあります。検索入力をクリアすると、すべてのデフォルト状態にテーブルが移動する必要がありますitemsHTMLテーブルのフィルタリング - Ajax

なぜ私のスクリプトは実行されませんか?

PS:私の悪い英語

<script> 
$(document).ready(function() { 
     var typingTimer;     
     var doneTypingInterval = 100; 

     $("#myInput").on('keyup', function() { 
      clearTimeout(typingTimer); 
      if ($('#myInput').val()) { 
       typingTimer = setTimeout(doneTyping, doneTypingInterval); 
      } 
     }); 
    }); 

    //user is "finished typing," do something 
    function doneTyping() { 
     var key = $('#myInput').val(); 

     if (key.length >= 1) { 
      $.ajax({ 
       url: '/customer/search/?myInput='+key, 
       type: 'GET', 
       beforeSend: function() { 
       $("#table").slideUp('fast'); 

       }, 
       success: function (data) { 
        console.log(data); 
        $("#table").slideDown('fast'); 

        var table = $("#table tbody"); 

         $.each(data, function(idx, elem){ 
          table.append(

           "<tr><td></td> <td>"+elem.name+"</td><td>"+elem.phone+"</td><tr>" 

          ); 

         }); 




       }    

      }); 

    } 
} 
</script> 

答えて

1

のため申し訳ありませんがあなたはif (key.length >= 1)条件を追加したので、あなたは、検索入力をクリアした場合には、再度、Ajaxの機能を呼び出すことはありません。この状態を取り除くだけです。

+0

私はクリアするとデフォルト状態に移行していませんか?それはまだ重複しているデータを持っています – LearnLaravel

+0

実際には、テーブルをクリアするためにあなたの "成功"関数に何かを追加する必要があります。 table.html( '')と同様、$ .each()の直前に置かれます。 – Poney

関連する問題