2017-08-08 47 views
0

我想重新加載我的網頁,在輸入中設置我的價值搜索(股票在localStorage),然後模擬按鍵(類型13)。按鍵後重新加載input.val()和焦點()不起作用

這裏是我的代碼:

$(function() { 

if((localStorage.getItem("search")) && (sessionStorage.getItem("reloadAfterPageLoad")!="false")) 
{ 
    $('#datatable_filter input').val(localStorage.getItem("search")).focus().trigger(jQuery.Event('keypress', { keycode: 13, which: 13, charCode: 13 })); 


} 
}); 

焦點()的作品爲localStorage.getItem( 「搜索」),但我的事件從未發生過。

我已經嘗試明確的方法解決觸發按鍵事件使用jQuery:

$(function() { 

if((localStorage.getItem("search")) && (sessionStorage.getItem("reloadAfterPageLoad")!="false")) 
{ 
var e = jQuery.Event("keypress"); 
e.which = 13; 
alert("la recherche était : "+localStorage.getItem("search")); 
$('#datatable_filter input').val(localStorage.getItem("search")).focus().trigger(e); 
sessionStorage.setItem("reloadAfterPageLoad", "false"); 

} 

而且它也沒有作品。

有關這個問題的任何想法? 在此先感謝您的幫助

+0

並通過觸發'keypress'這樣的,什麼是應該發生的,應該在表單提交還是什麼? – adeneo

+0

[使用jQuery觸發按鍵事件的最終方法]的可能重複(https://stackoverflow.com/questions/832059/definitive-way-to-trigger-keypress-events-with-jquery) – user1777136

+0

@ adeneo21:表應該刷新,因爲搜索將對我的數據應用過濾器 –

回答

0

您可以將輸入的keyenter/change邏輯移動到另一個函數並調用它。

$('input').keypress(function(event) { 
 
    updateTable(event); 
 
}); 
 

 
function updateTable(event) { 
 
    //update the table 
 
} 
 

 
#onLoad 
 
$(function() { 
 
    if ((localStorage.getItem("search")) && (sessionStorage.getItem("reloadAfterPageLoad") != "false")) { 
 
    $('#datatable_filter input').val(localStorage.getItem("search")).focus(); 
 
    updateTable(); 
 
    } 
 
});

相關問題