簡體   English   中英

為什么它在IE 6-8中不起作用(捕獲jQuery輸入)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM