繁体   English   中英

jQuery按键事件问题

[英]jQuery keypress event problem

我有一个函数(filterLeads),当将表单字段移离(模糊)时以及在表单字段中按Enter键时,都希望调用此函数。

$('#filter input, #filter select').blur(filterLeads);
$('#filter input, #filter select').keypress(function(e){if(e.which == 13) {filterLeads();}});

模糊效果正常,但是按键事件有问题。 除非在filterLeads();调用之前发生了什么,否则似乎不会触发该事件。 例如:

$('#filter input, #filter select').keypress(function(e){if(e.which == 13) {alert(e.which);filterLeads();}});

确认警报后,它将正确调用filterLeads()(显示正确的键代码)。

有任何想法吗? (浏览器FF 3.0)

我不确定为什么只针对FF ...,但也应该使用e.keyCode包括所有非FF浏览器 同样,根据此信息, keypress可能不是最好的选择。

尝试这样的事情:

$("#filter input, #filter select").keyup(function(e){
 var key = (e.which) ? e.which : e.keyCode;
 if( key == 13 ){ filterLeads(e) }
});

尝试一下:您应该return false; 从匿名函数中获取,因为否则将提交包含字段的表单(如果有的话),并重新加载页面。

如果filterLeads将事件作为参数,请不要忘记写: filterLeads(e)

如果没有其他帮助:Fire blur()

$('#filter input, #filter select').keypress(function(e){$(e.target).blur();});

(jQuery-fied,因为可能会附加自定义jQuery事件)。

只需添加e.preventDefault(); 在事件处理程序中,如下所示:

  $('#filter input, #filter select').keypress(function(e){if(e.which == 13) {filterLeads(); e.preventDefault(); }});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM