[英]keypress event not generated in Chrome on ENTER Key?
我的應用程序需要用戶輸入,在文本框中輸入值時,用戶按Enter(返回鍵)並調用按鈕onclick事件。 這適用於IE,FF但不是Chrome。 在輸入chrome時,不生成keypress事件這是我的代碼片段
$('#myDiv').keypress(function (e) {
alert("Key pressed");
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
有人可以提供這方面的意見嗎?
跨瀏覽器方法:
$('#myDiv').keydown( function(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if(key == 13) {
e.preventDefault();
alert("enter pressed");
}
});
在Chrome 24上測試: http : //jsfiddle.net/PTauw/1/
keypress
是檢測哪個字符已被輸入的正確事件(盡管在這種特殊情況下,檢測輸入鍵的情況, keydown
也可以正常工作)。 但是,如何獲取在按鍵事件中鍵入的字符在瀏覽器之間是不一致的,因此jQuery會對which
屬性進行規范化。 這是你想要的:
$('#myDiv').keypress(function (e) {
alert("Key pressed");
if (e.which == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
關鍵事件的權威參考: http : //unixpapa.com/js/key.html
此鏈接可能對您有所幫助......
Api Jquery Key按或嘗試使用此代碼
將按鍵更改為keydown:
$('#myDiv').keydown(function(e) {
// your logic
alert("Key pressed");
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
Chrome似乎使用ENTER
鍵而不是13
。
這適用於所有瀏覽器,包括CHROME
。
$('#myDiv').keydown(function(e) {
if ((e.which == 13) || (e.which == keyCode.ENTER)) {
alert("enter pressed");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.