2016-11-11 51 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(); 
});