1

此代码在 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

谢谢 :)

4

3 回答 3

1

尝试使用e.which()来支持所有浏览器

 var code = e.which;

 if(code == 13) { //Enter keycode
        if ($(this).is(":focus")) {
            $(this).submit().select();
        }
        return false;
 }
于 2013-10-07T15:39:49.083 回答
0

jQuery 会将keyCode 标准化e.which - 所以只使用 e.which 应该是安全的。

但是,我不确定以下代码 - 我很惊讶它在 IE6-8 以外的其他浏览器中也能正常工作。

$(this).submit().select()

在上面的上下文中$(this)是输入元素。应该在表单元素上调用 submit() 函数。input 元素不能自己提交,onsubmit 事件只存在于 form 元素上

正如 Brewal 在他的评论中提到的那样,您应该找到包装表单元素并 submit() 表单。如果没有表单元素,您的输入元素就无法发布其内容。

于 2013-10-07T15:54:48.513 回答
-1

某些浏览器不支持 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() ,告诉输入提交本身,但输入不提交,表单提交。

于 2013-10-07T15:40:36.213 回答