2014-10-20 90 views
1

我使用的是帶有外部篩選器的tablesorter。 (ctrl-F'filter_external')。從該文檔:Tablesorter:通過多個列(但不是全部)進行篩選

這些外部輸入有一個要求,它們必須具有一個 數據列=「#」,其中#目標的柱(基於零的指數), 指向特定列搜索。

<input class="search" type="search" data-column="0" placeholder="Search first column"> 

如果你要搜索的所有列,使用更新後的「任何比賽」 方法,設置數據列的值改爲「所有」:

<input class="search" type="search" data-column="all" placeholder="Search entire table"> 

我想是什麼將我的外部過濾器應用於一列(多於一個,少於全部)。理想情況下,HTML會是這個樣子:

<input class="search" type="search" data-column="0,1" placeholder="Search first two columns"> 

或這樣:(?是第二個甚至是有效的html)

<input class="search" type="search" data-column="0" data-column="1" placeholder="Search first two columns"> 

我一直上下的tablesorter文檔和我沒有運用我想要的那種運氣。我嘗試一種解決方法是提供一個單一的輸入給用戶,並把它寫入到被綁定到它們各自的列隱藏輸入:

<input class="search" type="search" placeholder="Search first two columns"> 
// javascript populates the hidden inputs as the user types in the visible one 
<input class="search" type="search" data-column="0" style="display: none;"> 
<input class="search" type="search" data-column="1" style="display: none;"> 

這個「作品」,但現在「和是從過濾每個單獨的過濾器,以便這兩列必須匹配該行的搜索項保持可見,而不是與匹配該行的搜索項匹配的列保持可見。 data-column="all"選項'OR'的搜索 - 這是我想要的。

回答

1

這是一個很好的建議!

我剛剛添加了在外部搜索輸入中包含多列的功能。目前這種變化只在working branch of the repository

隨着這一變化可用,您可以包括一個範圍,或用逗號分隔的多個列(demo):

<input type="search" class="search" data-column="0-1,3,5-7,9"> 

注:

  • 此輸入與data-column="all"的輸入行爲相同,因爲「range」,「notMatch」和「operators」搜索被忽略。
  • 如果存在多個輸入,則上次搜索將覆蓋所有以前的搜索。
  • 數據列屬性中的所有空格都將被忽略。
+0

我注意到這個項目的當前維護者在這裏很活躍 - 希望你會遇到這個帖子。非常感謝您的迴應,以及您在圖書館的工作。它爲我節省了一大堆時間(我支持自己的現在的角落)。僅供參考,我還在github上提交了一個錯誤消息,與外部過濾器不正確地處理大寫搜索條件有關。我目前通過上面的隱藏輸入技術來避免這個問題。 – NiloCK 2014-10-21 11:29:24

+0

我很高興能幫上忙! :)我沒有看到你在這裏提到的票,你有'filter_ignoreCase'選項設置爲'true'? – Mottie 2014-10-21 12:48:59

+0

https://github.com/christianbach/tablesorter/issues/40是我打開的問題。它看起來像我提交給以前的維護者?不太熟悉github。這張票可以比這裏更好地描述錯誤。再次感謝。 – NiloCK 2014-10-21 13:06:27

相關問題