我试图在用户按下按钮时将焦点设置为按钮 输入 键入文本框。但它没有用。我正在使用Internet Explorer 8浏览器。我错过了什么吗?
$("input.Box").live('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$("#button").focus(); // Not working?
}
});
我试图在用户按下按钮时将焦点设置为按钮 输入 键入文本框。但它没有用。我正在使用Internet Explorer 8浏览器。我错过了什么吗?
$("input.Box").live('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$("#button").focus(); // Not working?
}
});
微软决定他们不喜欢 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?
}
});
微软决定他们不喜欢 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()
叫做。所以,替换
$("#button").focus();
同
setTimeout(function () {
$('#button').focus();
}, 100);
这与结合使用 e.which
同 e.keyCode
正如Blender所说,应该解决你的问题。
你确定这个名字是对的吗? 。净 有重命名的习惯。您没有指定语言或环境。
尝试使用类选择器。给按钮一个类名 class="Test"
然后选择使用 $(".Text").focus()
。
在尝试设置焦点之前,确保DOM已准备就绪,元素存在。