如何使用JavaScript(或jQuery)将焦点放在文本框上?
我在页面上有一个文本框,在用户按下回车键后,文本框失去焦点。 (请记住,没有发布帖子,页面不刷新)
我希望能够通过javascript将焦点设置回文本框内,以便用户可以继续输入,而不必点击任何内容。
我尝试在用户按下回车键后添加以下代码:
$(".focus").focus();
我的文本框的代码:
<input type="text" class="focus" />
但是,光标没有出现在文本框内部,用户仍然需要点击才能继续输入。
如何解决此问题?
答案 0 :(得分:2)
您必须将focus
代码应用于input
,如果页面未加载或代码运行时DOM
未就绪,那么就没有{{} 1}}到input
上..
所以你必须检查DOM是否已加载,如下所示:
focus
您还可以在$(function(){
$(".focus").focus();
});
标记之前的页面底部添加代码,以便在所有HTML之后加载。
注意:如果你在jsfiddle中运行它,默认情况下你的代码是在页面加载时运行的。使用JQuery时,它会自动将其包装在以下代码中:
</body>
在这种情况下,meetamit非常有用,我想你正在寻找这个:
$(window).load(function(){
//your code here
});
答案 1 :(得分:1)
为什么按回车键可以从现场取走焦点? (我无法重现它。)这可能表明仍有一个隐藏的问题。也许不吧。如果没有,这可能会有所帮助:
$(".focus").on('keydown', function(event) {
if(event.which == 13) {// Enter key pressed
event.preventDefault();
}
});