2013-02-20 49 views
1

我正在使用tablesorter 2.7.9(Mottie's fork)和過濾器函數小部件,我希望內置的select下拉列表能夠選擇空單元格值作爲過濾器選項。有沒有人知道一個簡單的方法來做到這一點,除了在所有的空單元格中加入假值?我的過濾器下拉列表包含2個空白選項:一個用於取消選擇過濾器,另一個用於匹配表格中的數據值,但當然將其設置爲僅取消選擇該過濾器。Tablesorter - 空單元格上的過濾器函數

+0

讓我們看看一些代碼。請給我們一個JSFiddle以更好地幫助你:) – 2013-02-20 22:36:19

回答

2

令人遺憾的是,沒有一種簡單的方法可以通過過濾器小部件的寫入方式來選擇空單元格。主要問題是我們如何區分清除過濾器和搜索空表格單元?

我可以添加一些方法來專門查找空表格單元格,或者如您所說在空表格單元格中添加「假」值 - 一種方法是在空單元格內添加<span style="display:none">{empty}</span>。然後,選擇下拉菜單將包含{empty}條目,以便用戶知道他們正在選擇什麼(demo)。

這樣可以嗎?

+0

感謝您的回覆,我現在將使用假值。我沒有想過要添加一個隱藏的跨度。由於空值會再次添加到過濾器下拉列表中,因此用戶認爲空應該是可選的。我認爲一個增強,要麼刪除這個額外的價值(或更好)增加某種硬編碼的空匹配字符串的選項值將是偉大的! – user2093214 2013-02-21 17:31:34

+0

從v2.21.5開始,您可以使用不需要修改HTML的替代方法 - 請參閱http://stackoverflow.com/a/29506523/145346 – Mottie 2015-04-08 05:23:02

1

您可以使用正則表達式

var filters = [], 
col = <insertColumnNumberHere>, // the column number to perform the search on 
txt = "/^$/"; // ^$ = empty string 
filters[col] = txt; 
$.tablesorter.setFilters($('table'), filters, true); 

用空字符串的正則表達式的知識,你應該能夠創建一個droplist其中的空白選項之一爲"/^$/"值尋找一個空字符串。