2011-09-06 28 views
33

我想在用戶單擊textarea時選擇textarea內的所有文本。我試過onclick="this.focus()",但這沒有做任何事情。我試過onclick="this.highlight()",但是這造成了一個錯誤。我該怎麼辦?突出顯示textarea中的所有文本

回答

41

這可能會惹惱您的用戶,因爲它會阻止在用戶點擊時放置插入符的有用默認行爲,因此我建議您一般不要這樣做。也就是說,大多數瀏覽器的解決方案是onclick="this.select()"

但是,這不適用於Chrome [更新2014年2月:它現在似乎在最新版本的Chrome]。有關此問題的解決方法和一般的背景,看到以下問題:jQuery - select all text from a textarea

+9

的onclick = 「this.focus(); this.select()」在Chrome瀏覽器也可以正常工作 –

+0

@ mars-o:就這樣。我想知道Chrome是否改變了它的行爲,或者我是否總是錯誤的。 –

+2

在Chrome 28上,'onclick =「this.select()」'確實足夠,並且可以工作! –

4

onclick="this.focus()"是多餘的,因爲focus()方法是一樣的點擊textarea的(但將光標置於在文本的末尾)。

highlight()甚至不是一個函數,除非你創建它在別的地方。

結論:做this.select()

10
<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> 

我得到這個代碼here

+1

document.getElementById(id)可以省略,只需傳遞'this'作爲參數來代替:'function SelectAll(el){el.focus(); el.select(); };' –

20
onclick="this.focus();this.select()" readonly="readonly" 
+0

簡單而漂亮,適用於Chrome – jazzcat