如何使用 jQuery 在页面加载时关注表单输入文本字段?

IT技术 javascript jquery html focus
2021-02-19 22:58:40

这可能很简单,但是有人能告诉我如何在页面加载时让光标在文本框中闪烁吗?

6个回答

将焦点设置在第一个文本字段上:

 $("input:text:visible:first").focus();

这也是第一个文本字段,但您可以将 [0] 更改为另一个索引:

$('input[@type="text"]')[0].focus(); 

或者,您可以使用 ID:

$("#someTextBox").focus();
如果使用对话框,如果上述方法不起作用,请查看此答案stackoverflow.com/a/20629541/966609
2021-04-16 22:58:40
$('input[type="text"]').get(0).focus(); ...为我工作
2021-05-05 22:58:40

您可以为此使用HTML5autofocus您不需要 jQuery 或其他 JavaScript。

<input type="text" name="some_field" autofocus>

请注意,这不适用于 IE9 及更低版本。

这适用于我的场景,但由于某种原因,所选答案无效。
2021-04-21 22:58:40
自动对焦在 IE11 中不起作用stackoverflow.com/questions/34068302/...
2021-04-22 22:58:40
这很棒而且更短,即使使用了一个字母id:P
2021-04-23 22:58:40

当然:

<head>
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            $("#myTextBox").focus();
        });
    </script>
</head>
<body>
    <input type="text" id="myTextBox">
</body>
@AliSheikhpour 脚本位于 dom 就绪包装器中,因此它在 html 元素之前无关紧要,但无论如何它都不应该在脑海中。
2021-05-08 22:58:40
我建议将脚本放在 html 元素之后。
2021-05-10 22:58:40

为什么每个人都使用 jQuery 来做这样简单的事情。

<body OnLoad="document.myform.mytextfield.focus();">
因为这个问题被标记为 jQuery。
2021-04-26 22:58:40

在您执行此操作之前,请考虑您的用户界面。我假设(虽然没有一个答案是这样说的)当文档使用 jQuery 的ready()函数加载时,你会这样做如果用户在文档加载之前已经将注意力集中在不同的元素上(这是完全可能的),那么他们的焦点被偷走是非常令人恼火的。

您可以通过onfocus在每个<input>元素中添加属性来检查这一点,以记录用户是否已经关注表单字段,然后如果他们有以下情况则不会窃取焦点:

var anyFieldReceivedFocus = false;

function fieldReceivedFocus() {
    anyFieldReceivedFocus = true;
}

function focusFirstField() {
    if (!anyFieldReceivedFocus) {
        // Do jQuery focus stuff
    }
}


<input type="text" onfocus="fieldReceivedFocus()" name="one">
<input type="text" onfocus="fieldReceivedFocus()" name="two">
您的观点不仅在技术上是正确的,而且您对最佳 UX 的考虑也是精妙绝伦的。太棒了!
2021-05-12 22:58:40