在重新加载后,input.val()和focus()之后的按键不起作用

时间:2017-08-08 16:13:08

标签: javascript jquery

我想重新加载我的页面,在输入中设置我的值搜索(在localStorage中存储),之后模拟一个按键(类型13)。

这是我的代码:

$( 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 }));


} 
});

focus()作为localStorage.getItem(" search"),但我的事件永远不会发生。

我已经尝试使用jQuery触发keypress事件的Definitive方法的解决方案:

$( 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");

} 

它也不起作用。

对这个问题有什么看法? 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以将输入的键入/更改逻辑移动到另一个功能并调用它。

$('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();
  }
});