首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >单击时选择HTML文本输入中的所有文本

单击时选择HTML文本输入中的所有文本
EN

Stack Overflow用户
提问于 2010-11-01 16:27:06
回答 27查看 581K关注 0票数 631

我有以下代码在HTML网页中显示文本框。

代码语言:javascript
复制
<input type="text" id="userid" name="userid" value="Please enter the user ID" />

当页面显示时,文本包含请输入用户ID消息。但是,我发现用户需要单击3次才能选择所有文本(在本例中是请输入用户ID)。

只需单击一次即可选择整个文本吗?

编辑:

对不起,我忘了说:我必须使用输入type="text"

EN

回答 27

Stack Overflow用户

回答已采纳

发布于 2010-11-01 16:32:33

您可以使用以下javascript代码片段:

代码语言:javascript
复制
<input onClick="this.select();" value="Sample Text" />

但很明显,它在移动Safari上不起作用。在这些情况下,您可以使用:

代码语言:javascript
复制
<input onClick="this.setSelectionRange(0, this.value.length)" value="Sample Text" />
票数 1K
EN

Stack Overflow用户

发布于 2013-10-21 23:21:14

之前发布的解决方案有两个怪癖:

Chrome中的

  1. 通过.select()进行的选择并不可靠-添加一个轻微的超时即可解决此问题。
  2. 不可能将光标放在焦点之后的所需位置。

这是一个完整的解决方案,可以选择焦点上的所有文本,但允许在焦点之后选择特定的光标点。

代码语言:javascript
复制
$(function () {
    var focusedElement;
    $(document).on('focus', 'input', function () {
        if (focusedElement == this) return; //already focused, return so user can now place cursor at specific point in input.
        focusedElement = this;
        setTimeout(function () { focusedElement.select(); }, 100); //select all text in any field on focus for easy re-entry. Delay sightly to allow focus to "stick" before selecting.
    });
});
票数 81
EN

Stack Overflow用户

发布于 2013-05-17 14:25:58

我知道这是旧的,但最好的选择是现在使用新的placeholder超文本标记语言属性:

代码语言:javascript
复制
<input type="text" id="userid" name="userid" placeholder="Please enter the user ID" />

这将导致文本显示,除非输入值,从而消除了选择文本或清除输入的需要。

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4067469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档