将焦点设置在按钮上不起作用
我试图在用户按下文本框中的Enter键时将焦点设置为按钮。 但它没有用。 我正在使用Internet Explorer 8浏览器。 我错过了什么吗?
$("input.Box").live('keydown', function(e) { if (e.keyCode == 13) { e.preventDefault(); $("#button").focus(); // Not working? } });
微软决定他们不喜欢e.keyCode
,而是有自己的语法, e.keyCode
。
你必须检查两个:
$("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
function和调用.focus()
之间添加一个小延迟。 所以,替换
$("#button").focus();
同
setTimeout(function () { $('#button').focus(); }, 100);
这与使用e.keyCode
作为Blender建议的e.which
一起应该解决您的问题。
你确定这个名字是对的吗? .NET有重命名的习惯。 您没有指定语言或环境。
尝试使用类选择器。 为该按钮指定class class="Test"
的类名,然后使用$(".Text").focus()
。
在尝试设置焦点之前,确保DOM已准备就绪,元素存在。