2012-12-14 8 views
10

Mam pole tekstowe (ustawione na tylko do odczytu) i potrzebuję jego "zawartości do zaznaczenia, aby łatwo kopiować/wklejać, gdy uzyska fokus. Używając poniższego kodu wydaje się, że tylko szybko zaznaczasz tekst, a następnie odznaczasz go z jakiegoś powodu.Zaznacz cały tekst "tylko do odczytu" <input />, gdy zyskuje ostrość

HTML

<input id='thing' type='text' value='some text' readonly='readonly' />​ 

JavaScript

document.getElementById('thing').onfocus = function(){ 
    this.select(); 
};​ 

Fiddle: http://jsfiddle.net/cfqje/

+4

Duplikat? http://stackoverflow.com/questions/4067469/selecting-all-text-in-html-text-input-when-clicked – elclanrs

+0

Fiddle działa dla mnie w Firefoksie. IE8. Jaka przeglądarka nie działa? –

+0

@John Tak, moje złe. Chyba zapomniałem zaakceptować ten. Mam teraz. –

Odpowiedz

16

Wydaje się obejść:

<input id='thing' type='text' value='some text' onclick="this.select()" readonly='readonly' />​

Myślę, że problemem jest to, że ostrość nie działa prawidłowo, gdy wejście jest tylko do odczytu.

+0

Skrypt wbudowany. Tut tut. – ProfK

0

Możesz teraz używać CSS. Z user-select: all; cały tekst zostanie wybrany po kliknięciu elementu.

+0

Bardzo to lubię, należy pamiętać, że opcja _ "all" _ może być błędna w Safari, zgodnie z [MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/ user-select # Składnia). – jhaskell