2013-07-05 183 views
0

我有一張可排序和可篩選的表格,如果使用選擇字段更改我的篩選器,一切正常。但是,如果用戶在x秒後沒有選擇過濾器,我希望它根據指定的選項進行過濾。在設定的時間後改變選擇沒有問題,但是要過濾的javascript不會識別這是一個change()事件。我如何才能將它識別爲更改,或者通過其他方式在一段時間後註冊默認選擇?在不改變焦點的情況下觸發更改功能

僅供參考,我使用這個腳本表過濾/排序:

http://www.javascripttoolbox.com/lib/table/

我想通過我自己的值Table.filter(這一點,這一點)。

+0

只是調用你在'onchange'處理程序中調用的相同函數。 – Barmar

+0

@Barmar這可能聽起來很愚蠢,所以我很抱歉。我正在使用一個我在網上找到的腳本,它使用以下命令來排序: select id =「select」onchange =「Table.filter(this,this)」 我將如何引用(this,this)假設這取決於選擇?不僅如此,我不知道這是什麼,這是指的。 – jboneca

+0

請添加一個鏈接到描述表格腳本的網站。 – Barmar

回答

1

我覺得這樣的事情應該工作:

var defaultFilter = 3; 
var filterTimeout = 5000; 

window.setTimeout(function() { 
    var select = document.getElementById("select"); 
    select.selectedIndex = defaultFilter; 
    Table.filter(select, select); 
}, filterTimeout); 
+0

絕對非常接近!它「過濾」,但它過濾一切(即,表顯示沒有行) – jboneca

+0

您是否已將默認設置設置爲選擇下拉列表中的有效索引? – Barmar

+0

我是個白癡,謝謝@Barmar,工作起來就像一個魅力! – jboneca

0

HTML:

<select id="select" onchange="Table.filter(this,this)">... </select>

的Javascript:

var select = document.getElementById("select"); 
var secondsToChange = 2; 

select.onclick = function() { 
    window.setTimeout(function(){select.onchange.apply(select)},secondsToChange*1000); 
}; 

我認爲應該工作...

+0

謝謝,但沒有骰子:( – jboneca

+0

編輯。現在試試。看看這個:http://jsfiddle.net/VzGhE/ –

相關問題