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


当前回答

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

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

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

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

或者,你可以使用ID:

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

其他回答

这是我更喜欢使用的:

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

在这样做之前,请考虑一下您的用户界面。我假设(尽管没有一个答案这样说),您将在使用jQuery的ready()函数加载文档时这样做。如果用户在文档加载之前已经将焦点放在了不同的元素上(这是完全有可能的),那么对他们来说,焦点被窃取是非常令人恼火的。

你可以通过在每个<input>元素中添加onfocus属性来检查这一点,以记录用户是否已经关注了一个表单字段,如果他们已经关注了,那么不要窃取焦点:

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

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

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

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

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

或者,你可以使用ID:

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

你可以使用HTML5自动对焦。你不需要jQuery或其他JavaScript。

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

注意这在IE9及更低版本上不起作用。

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

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