Jquery 在按钮上设置焦点不起作用

Jquery 在按钮上设置焦点不起作用,jquery,setfocus,Jquery,Setfocus,我试图在用户按下文本框中的Enter键时将焦点设置为按钮。但它不起作用。我正在使用InternetExplorer8浏览器。我错过什么了吗 $("input.Box").live('keydown', function(e) { if (e.keyCode == 13) { e.preventDefault(); $("#button").focus(); // Not working? } }); 您确定名称正确吗?有重命名事物的习惯。您没有

我试图在用户按下文本框中的Enter键时将焦点设置为按钮。但它不起作用。我正在使用InternetExplorer8浏览器。我错过什么了吗

$("input.Box").live('keydown', function(e) {
    if (e.keyCode == 13) {
        e.preventDefault(); 
        $("#button").focus(); // Not working?
    }
});

您确定名称正确吗?有重命名事物的习惯。您没有指定语言或环境


尝试使用类选择器。给按钮一个类名
class=“Test”
,然后选择使用
$(“.Text”).focus()

Microsoft决定他们不喜欢
e.keyCode
,而是有自己的语法,
e.which

您必须检查以下两项:

$("input.Box").live('keydown', function(e) {
    var keyCode = (window.event) ? e.which : e.keyCode;

    if (keyCode == 13)
        e.preventDefault(); 
        $("#button").focus(); // Not working?
    }
});

问题是IE响应不够快,因此需要在输入
live
函数和调用
.focus()
之间添加一个小延迟。那么,替换

$(“#按钮”).focus()


这与Blender建议的使用
e.which
e.keyCode
相结合,应该可以解决您的问题。

在尝试设置焦点之前,确保DOM准备就绪,元素存在

他没有尝试将按钮集中在文档加载上。
setTimeout(function () {
 $('#button').focus();
}, 100);