jquery input select all on focus
Try using click
instead of focus
. It seems to work for both mouse and key events (at least on Chrome/Mac):
jQuery < version 1.7:
$("input[type='text']").click(function () { $(this).select();});
jQuery version 1.7+:
$("input[type='text']").on("click", function () { $(this).select();});
I think that what happens is this:
focus() UI tasks related to pre-focus callbacks select() UI tasks related to focus (which unselect again)
A workaround may be calling the select() asynchronously, so that it runs completely after focus():
$("input[type=text]").focus(function() { var save_this = $(this); window.setTimeout (function(){ save_this.select(); },100);});
I think this is better solution. Unlike simply selecting in onclick event, it doesn't prevent selecting/editing text with mouse. It works with major rendering engines including IE8.
$('input').on('focus', function (e) { $(this) .one('mouseup', function () { $(this).select(); return false; }) .select();});