我有一个函数(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 information,keypress
可能不是最好的事件。
尝试这样的事情:
$("#filter input, #filter select").keyup(function(e){
var key = (e.which) ? e.which : e.keyCode;
if( key == 13 ){ filterLeads(e) }
});