我正在顯示一個包含多行和多列的表。我正在使用名爲uiTableFilter的JQUERY插件,該插件使用文本字段輸入並根據您提供的輸入過濾(顯示/隱藏)表格行。你所要做的就是指定一個你想要過濾的列,它將只顯示在該列中有文本字段輸入的行。簡單,工作正常。如何使用JQUERY使用多個表單輸入動態地過濾錶行
我想添加第二個文本輸入字段,這將有助於我進一步縮小搜索結果的範圍。因此,例如,如果我有一個PETS表,一列是petType,另一個是petColor - 我可以在第一個文本字段中鍵入CAT,以顯示所有的貓,然後在第二個文本字段中,我可以鍵入黑色,並且生成的表格將只顯示發現黑貓的行。基本上,一個子集。
這裏是JQUERY我使用:
$("#typeFilter").live('keyup', function() {
if ($(this).val().length > 2 || $(this).val().length == 0)
{
var newTable = $('#pets');
$.uiTableFilter(theTable, this.value, "petType");
}
}) // end typefilter
$("#colorFilter").live('keyup', function() {
if ($(this).val().length > 2 || $(this).val().length == 0)
{
var newTable = $('#pets');
$.uiTableFilter(newTable, this.value, "petColor");
}
}) // end colorfilter
問題是,我可以使用一個過濾器,它將顯示錶中的行的子集正確,但是當我爲其他濾波器提供輸入,它似乎無法識別上一列剩餘的可見錶行,但是它似乎對原始表進行了全新的過濾。如果在應用一個過濾器後返回10行,則第二個過濾器應只應用於這10行。我試過LIVE和BIND,但沒有工作。
任何人都可以告訴我哪裏出錯了嗎?謝謝!
哇,畝,這真太了不起了。在小提琴上試過你的代碼,它的工作原理,所以我會從那裏修改它。非常感謝。 – tresstylez 2011-01-14 02:12:58