簡體   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