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

时间:2011-10-18 04:41:53

标签: jquery setfocus

我正在尝试将焦点设置为按钮,同时用户在文本框中按 Enter 键。但它没有用。我正在使用Internet Explorer 8浏览器。我错过了什么吗?

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

4 个答案:

答案 0 :(得分:9)

问题是IE无法足够快地响应,因此您需要在输入live函数和调用.focus()之间添加一个小延迟。所以,替换

$("#button").focus();

setTimeout(function () {
 $('#button').focus();
}, 100);

这与将e.whiche.keyCode一起使用为Blender建议一起解决您的问题。

答案 1 :(得分:7)

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?
    }
});

答案 2 :(得分:1)

您确定名称是否正确? .NET有重命名的习惯。您没有指定语言或环境。

尝试使用类选择器。为该按钮指定一个class="Test"的班级名称,然后使用$(".Text").focus()选择。

答案 3 :(得分:-1)

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