entrada jquery seleccione todo en el foco
Estoy usando este código para intentar seleccionar todo el texto en el campo cuando un usuario se concentra en el campo. Lo que sucede es que selecciona todo por un segundo, luego se deselecciona y el cursor de escritura queda donde hice clic...
$("input[type=text]").focus(function() {
$(this).select();
});
Quiero que todo permanezca seleccionado.
Intenta usar click
en lugar de focus
. Parece funcionar tanto para eventos de mouse como de teclas (al menos en Chrome/Mac):
jQuery <versión 1.7:
$("input[type='text']").click(function () {
$(this).select();
});
jQuery versión 1.7+:
$("input[type='text']").on("click", function () {
$(this).select();
});
Aquí hay una demostración
Creo que lo que pasa es esto:
focus()
UI tasks related to pre-focus
callbacks
select()
UI tasks related to focus (which unselect again)
Una solución alternativa puede ser llamar a select() de forma asincrónica, para que se ejecute completamente después de focus():
$("input[type=text]").focus(function() {
var save_this = $(this);
window.setTimeout (function(){
save_this.select();
},100);
});
Creo que esta es una mejor solución. A diferencia de simplemente seleccionar en el evento onclick, no impide seleccionar/editar texto con el mouse. Funciona con los principales motores de renderizado, incluido IE8.
$('input').on('focus', function (e) {
$(this)
.one('mouseup', function () {
$(this).select();
return false;
})
.select();
});
http://jsfiddle.net/25Mab/9/