这可能很简单,但是有人能告诉我如何在页面加载时让光标在文本框中闪烁吗?
如何使用 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();
您可以为此使用HTML5autofocus
。您不需要 jQuery 或其他 JavaScript。
<input type="text" name="some_field" autofocus>
请注意,这不适用于 IE9 及更低版本。
当然:
<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>
为什么每个人都使用 jQuery 来做这样简单的事情。
<body OnLoad="document.myform.mytextfield.focus();">
在您执行此操作之前,请考虑您的用户界面。我假设(虽然没有一个答案是这样说的)当文档使用 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">