Select all text in a 'readonly' <input /> when it gains focus

CBarr picture CBarr · Dec 15, 2012 · Viewed 15.7k times · Source

I've got a textbox (set to readonly) and I need its' contents to be selected for easy copy/paste when it gains focus. Using the code below it only seems to quickly select the text and then unselect it for some reason.

HTML

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

JavaScript

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

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

Answer

JNK picture JNK · Dec 15, 2012

This seems to be a work around:

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

I guess the problem is that focus doesn't work correctly as the input is readonly.