$('input').focus(function () {
var self = $(this);
setTimeout(function () {
self.select();
}, 1);
});
Редактировать: По запросу @ DavidG я не могу предоставить подробности, потому что я не уверен, почему это работает, но я верю, что это как-то связано с событием фокуса, распространяющимся вверх или вниз, или с чем бы то ни было, и с элементом ввода получать уведомление, он получил фокус. Установка времени ожидания дает элементу момент, чтобы понять, что это сделано.