如何自动显示文本框光标?

7

你们能告诉我如何自动显示文本框光标吗?通常当我点击文本框时,会出现文本光标。是否有可能立即显示它?

5个回答

18
在控件上设置autofocus属性(MDNspec)。
<textarea rows="4" cols="30" autofocus></textarea>

也可以使用JavaScript来设置它,但这可能会干扰页面的正常使用(尤其是屏幕阅读器使用焦点点来阅读)(自动对焦属性也可能会有这个问题,但至少它是标准的,因此屏幕阅读器软件可以编写以解决这个问题)。

我不推荐的JavaScript技术是:

<textarea rows="4" cols="30" id="mytextarea"></textarea>
<script> document.getElementById('mytextarea').focus(); </script>

请注意,这个方法不会使用onload事件。该事件只有在整个文档加载完成,包括依赖项如图片等,才会触发,因此通常会有相当长的延迟,用户可能在此期间开始与页面进行交互。在此之后设置焦点很可能会中断用户正在进行的操作。

1

您可以设置焦点。如果您不使用任何外部库(如jQuery),请尝试以下方法:

<body onload="document.yourForm.yourTextarea.focus();">

<form name="yourForm">
<textarea name="yourTextarea"></textarea>
</form>

</body>

2
我没有给你的回答点踩,但即使你的解决方案“可行”,它也是一个糟糕的解决方案。换句话说,你可以通过割破手指用鲜血签名来有效地签署所有收据,但为什么不使用笔呢? - Jason
1
哇,"割破手指签字"……这有点太戏剧化了吧,对于 Stack Overflow 来说?永远没有所谓的“坏”解决方案,只有针对特定情况的“好”或“坏”解决方案。如果您的情况是不使用 jQuery,并且 "autofocus" 属性无法满足需求(也许您需要支持 IE8),那么这个答案就是一个完全“好”的解决方案。 - machineghost

0

-1

页面加载时,您可以将焦点放在该文本框上 focus


问题是在问如何做到这一点。 - undefined

-4
使用以下代码:<textarea rows="20" cols="100">

您的HTML代码: <textarea>


那不会自动将焦点设置在它上面。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接