这可能非常简单,但有人可以告诉我如何在页面加载时让光标在文本框上闪烁吗?
答案 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>