2016-11-11 52 views
6

我有一个简单的搜索功能,我在信息表上使用,但由于我将表格中的文本转换为可编辑字段,搜索功能不再有效。在(禁用)输入字段上的搜索功能

我试图用几种不同的方法排除故障,但似乎无法使其工作。

这里是我迄今有:

var $rows = $('.list #data'); 
$('#search').keyup(function() { 
    var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); 

$rows.show().filter(function() { 
    var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); 
    return !~text.indexOf(val); 
}).hide(); 
}); 

这适用于简单的纯文本表格就好了。这里有一个的jsfiddle,显示你什么,我试图完成:

https://jsfiddle.net/je9mc9jp/8/

+3

你不能有与同一ID – lintu

回答

0

走到更深一点在这个问题上与我的一个朋友,我们设法得到我们想要的东西的工作。

鲍勃的答案是好的,但问题是它不会返回整行结果。只是您搜索的特定术语!

下面是我工作:

var $rows = $('.list .edit'); 
$('#search').keyup(function() { 
    var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); 
     $rows.parents("tr").hide() 
    var x = $rows.show().filter(function() { 
     var text = $(this).val().replace(/\s+/g, ' ').toLowerCase(); 

     if(text.indexOf(val) > -1) 
      return $(this); 
    });  

    $(x).each(function(){ 
     $(this).parents("tr").show(); 
    }); 
}); 

JSFiddle demo

+0

多个字段这很酷,@Brayn –

4
//SEARCH 
var $rows = $('.list input'); 
$('#search').keyup(function() { 
    var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); 

    $rows.show().filter(function() { 
     var text = $(this).val().replace(/\s+/g, ' ').toLowerCase(); 
     return !~text.indexOf(val); 
    }).hide(); 
});