首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么它在IE 6-8中不起作用(用jQuery捕获Enter )

为什么它在IE 6-8中不起作用(用jQuery捕获Enter )
EN

Stack Overflow用户
提问于 2013-10-07 23:33:42
回答 3查看 91关注 0票数 1

此代码在IE 6-8中不起作用。为什么?

代码语言:javascript
复制
$(".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

谢谢您:)

EN

回答 3

Stack Overflow用户

发布于 2013-10-07 23:39:49

尝试使用来支持所有浏览器

代码语言:javascript
复制
 var code = e.which;

 if(code == 13) { //Enter keycode
        if ($(this).is(":focus")) {
            $(this).submit().select();
        }
        return false;
 }
票数 1
EN

Stack Overflow用户

发布于 2013-10-07 23:54:49

jQuery将normalize the keyCode e.which 中-所以只使用e.which应该是安全的。

然而,我对以下代码不太确定--我很惊讶它可以在IE6-8以外的其他浏览器中运行。

代码语言:javascript
复制
$(this).submit().select()

在上面的输入元素$()上下文中,是输入元素。应该在表单元素上调用submit()函数。输入元素不能由自身提交,即onsubmit event exists only on the form element

正如Brewal在他的评论中提到的,您应该找到包装表单元素并提交()表单。如果没有form-element,您的input元素将无处发布其内容。

票数 0
EN

Stack Overflow用户

发布于 2013-10-07 23:40:36

某些浏览器不支持e.keycode请参阅此示例

代码语言:javascript
复制
    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()也是告诉输入提交自身,但是输入不提交,表单提交。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19228830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档