[英]Why it doesn't work in IE 6-8 (catching Enter with jQuery)
此代碼在IE 6-8中不起作用。 為什么?
$(".put").keydown(function (e) {
if (e.keyCode == 13) {
if ($(this).is(":focus")) {
$(this).submit().select();
}
return false;
}
});
這是整頁https://rawgithub.com/ruslankh/Kurchatovy/master/index.html
謝謝 :)
嘗試使用e.which()支持所有瀏覽器
var code = e.which;
if(code == 13) { //Enter keycode
if ($(this).is(":focus")) {
$(this).submit().select();
}
return false;
}
jQuery會將keyCode標准化為e.which-因此僅使用e.which應該是安全的。
但是,我不確定以下代碼-令我驚訝的是,它在IE6-8之外的其他瀏覽器中也可以使用。
$(this).submit().select()
在$(this)以上的上下文中, 為輸入元素。 Submit()函數應在form元素上調用。 輸入元素本身不能提交, onsubmit事件僅存在於form元素上 。
正如Brewal在他的評論中提到的那樣,您應該找到包裝表單元素並提交()表單。 沒有格式元素,您的輸入元素將無處發布其內容。
某些瀏覽器不支持e.keycode參見此示例
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
alert('You pressed a "enter" key in textbox');
}
另外,如果您使用或最近切換到新版本的jquery(2.0+)IE8及更低版本,則不再支持
同樣在函數內部使用$(this).submit()告訴輸入要提交自己,但是輸入不提交,表單會提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.