2016-11-21 87 views
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($(本).VAL()); }); }); - (如此说dreamweaver) – Ben

+0

@Ben你知道关于JS的任何事情吗?或者你只是在尝试一些东西?我无法帮你处理这么少的细节。 –

+0

是的,我是一个用户,但不知道语言。我开始在我的原型设计中使用js。我会更多地研究解决方案,以解决您的问题 - 谢谢。 – Ben