2016-11-21 13 views
1

私は現在、ビルドしているプロトタイプで、以下のテーブル検索/フィルタスクリプトを使用しています。ユーザーからのフィードバックは、検索で一致が返されなかった場合にメッセージが必要であることを示しています。テーブル検索 - '結果なし'メッセージを追加

ユーザーがテーブルに見つからないものを検索したときに結果メッセージが表示されないような変更を提案できるかどうか疑問に思っていましたか?

考えられるのは、文字列が見つからない限り、1回だけ表示することです。検索フィールドが更新または変更されると、検索/フィルタが再び開始されます。

いいえ:これは私が使用しているコードベースでは尋ねられましたが、私はスクリプトのユーザーですが、言語を完全に理解していないので、コードに適用できません。

おかげ

<script> 
     $(document).ready(function() 
     { 
      $('#search').keyup(function() 
      { 
       searchTable($(this).val()); 
      }); 
     }); 
     function searchTable(inputVal) 
     { 
      var table = $('#tblData'); 
      table.find('tr').each(function(index, row) 
      { 
       var allCells = $(row).find('td'); 
       if(allCells.length > 0) 
       { 
        var found = false; 
        allCells.each(function(index, td) 


        { 
         var regExp = new RegExp(inputVal, 'i'); 
         if(regExp.test($(td).text())) 
         { 
          found = true; 
          return false; 
         } 
        }); 
        if(found == true)$(row).show();else $(row).hide(); 
       } 
      }); 
     } 
    </script> 

答えて

1

あなたは「何の結果」を示していない行を持つことができ、そして、あなたは結果を見つけたときにそれを表示するかどうかを決めることができます。たとえば、foundResultsのような変数を保存し、最後にそれを表示するかどうかを決定してください。このような

何か:

<script> 
    $(document).ready(function() 
    { 
     $('#search').keyup(function() 
     { 
      searchTable($(this).val()); 
     }); 
    }); 
    function searchTable(inputVal) 
    { 
     var table = $('#tblData'); 
     var foundResults = false; 
     table.find('tr').each(function(index, row) 
     { 
      var allCells = $(row).find('td'); 
      if(allCells.length > 0) 
      { 
       var found = false; 
       allCells.each(function(index, td) { 
        var regExp = new RegExp(inputVal, 'i'); 
        if(regExp.test($(td).text())) 
        { 
         found = true; 
         foundResults = true; 
         return false; 
        } 
       }); 
       if(found == true)$(row).show();else $(row).hide(); 
      } 
     }); 
     if (foundResults) { 
      $(".noresults").hide(); 
     } else { 
      $(".noresults").show(); 
     } 
    } 
</script> 
+0

スクリプトエラーが発生しているように見えます。 searchTable($(this).val()); }); }); - (だからドリームウィーバー) – Ben

+0

@ベンあなたはjsについて何か知っているのですか?私はあなたに少しの細部であなたを助けることができません。 –

+0

はい、私はユーザーですが、言語を知らないです。私はプロトタイプ作成でjsを使い始めました。私はもう少しあなたのソリューションへの修正を調査します - ありがとう。 – Ben

関連する問題