突出显示textarea中的所有文本

Car*_*arl 44 javascript

我想在用户单击textarea时选择textarea中的所有文本.我试过了onclick="this.focus()",但这没有做任何事情.我试过了onclick="this.highlight()",但这引起了一个错误.我该怎么办?

Tim*_*own 50

这可能会惹恼您的用户,因为它会阻止将插入符号放置在用户单击的位置的有用默认行为,因此我建议不要使用它.也就是说,大多数浏览器的解决方案是onclick="this.select()".

但是,这不适用于Chrome [更新2014年2月:它现在似乎适用于最新版本的Chrome].有关此问题的变通方法和一般背景,请参阅以下问题:jQuery - 从textarea中选择所有文本

  • onclick ="this.focus(); this.select()"也适用于Chrome (9认同)
  • 在Chrome 28上,`onclick ="this.select()"`就足够了! (2认同)
  • 仍然在铬34.0.1847.116米 (2认同)

mať*_*aťo 27

onclick="this.focus();this.select()" readonly="readonly"
Run Code Online (Sandbox Code Playgroud)


小智 13

<script type="text/javascript">
function SelectAll(id)
{
    document.getElementById(id).focus();
    document.getElementById(id).select();
}
</script>

Textarea:<br>
<textarea rows="3" id="txtarea" onClick="SelectAll('txtarea');" style="width:200px" >This text you can select all by clicking here </textarea>
Run Code Online (Sandbox Code Playgroud)

我在这里得到了这个代码

  • document.getElementById(id) 可以省略,只需将 `this` 作为参数传递: `function SelectAll(el) { el.focus(); el.select(); };` (2认同)

fir*_*w52 5

onclick="this.focus()"这是多余的,因为该focus()方法与单击textarea相同(但它将光标放在文本的末尾).

highlight() 甚至不是一个功能,除非你在其他地方创建它.

结论:做 this.select()