我有一个函数(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包含all non-FF browsers。同样,根据this informationkeypress可能不是最好的事件。

尝试这样的事情:

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

07-24 09:31