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

时间:2009-10-20 00:46:29

标签: javascript jquery html focus

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

12 个答案:

答案 0 :(得分:339)

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

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

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

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

或者,您可以使用ID:

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

答案 1 :(得分:79)

您可以使用HTML5 autofocus。您不需要jQuery或其他JavaScript。

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

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

答案 2 :(得分:26)

不确定

<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>

答案 3 :(得分:21)

为什么每个人都使用jQuery这样简单。

<body OnLoad="document.myform.mytextfield.focus();">

答案 4 :(得分:18)

在执行此操作之前,请考虑您的用户界面。我假设(虽然没有一个答案已经这么说),当文档使用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">

答案 5 :(得分:12)

HTML:

  <input id="search" size="10" />

jQuery的:

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

答案 6 :(得分:8)

抱歉碰到一个老问题。我通过谷歌找到了这个。

还值得注意的是,它可以使用多个选择器,因此您可以定位任何表单元素,而不仅仅是一种特定类型。

例如

$('#myform input,#myform textarea').first().focus();

这将聚焦它找到的第一个输入或textarea,当然你也可以将其他选择器添加到混音中。如果您不能确定某个特定的元素类型是第一个,或者您想要一些通用/可重用的东西,那就好了。

答案 7 :(得分:5)

这是我更喜欢使用的:

<script type="text/javascript">
    $(document).ready(function () {
        $("#fieldID").focus(); 
    });
</script>

答案 8 :(得分:3)

输入后放置

<script type="text/javascript">document.formname.inputname.focus();</script>

答案 9 :(得分:0)

实现此目的的简单,最简单的方法

$('#button').on('click', function () {
    $('.form-group input[type="text"]').attr('autofocus', 'true');
});

答案 10 :(得分:0)

仅行$('#myTextBox').focus()不会将光标放在文本框中,而是使用:

$('#myTextBox:text:visible:first').focus();

答案 11 :(得分:0)

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

您也可以使用 HTML5 元素 <autofocus>