javascript - una - jQuery: selecciona todo el texto de un área de texto
obtener texto de un span jquery (6)
¿Cómo puedo hacerlo así cuando haces clic dentro de un área de texto, se selecciona todo su contenido?
Y, finalmente, cuando haces clic nuevamente, para anular la selección.
Mejor manera, con solución al problema tab y chrome y nueva forma jquery
$("#element").on("focus keyup", function(e){
var keycode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if(keycode === 9 || !keycode){
// Hacemos select
var $this = $(this);
$this.select();
// Para Chrome''s que da problema
$this.on("mouseup", function() {
// Unbindeamos el mouseup
$this.off("mouseup");
return false;
});
}
});
Terminé usando esto:
$(''.selectAll'').toggle(function() {
$(this).select();
}, function() {
$(this).unselect();
});
Versión jQuery ligeramente más corta:
$(''your-element'').focus(function(e) {
e.target.select();
jQuery(e.target).one(''mouseup'', function(e) {
e.preventDefault();
});
});
Maneja la caja de la esquina de Chrome correctamente. Ver http://jsfiddle.net/Ztyx/XMkwm/ para un ejemplo.
Seleccionar texto en un elemento (similar a resaltar con el mouse)
:)
Usando la respuesta aceptada en esa publicación, puede llamar a la función de esta manera:
$(function() {
$(''#textareaId'').click(function() {
SelectText(''#textareaId'');
});
});
Para evitar que el usuario se moleste cuando se selecciona todo el texto cada vez que intente mover el símbolo de intercalación con el mouse, debe hacerlo utilizando el evento de focus
, no el evento de click
. Lo siguiente hará el trabajo y solucionará un problema en Chrome que impide la versión más simple (es decir, simplemente no funciona el método select()
en un controlador de eventos de focus
).
jsFiddle: http://jsfiddle.net/NM62A/
Código:
<textarea id="foo">Some text</textarea>
<script type="text/javascript">
var textBox = document.getElementById("foo");
textBox.onfocus = function() {
textBox.select();
// Work around Chrome''s little problem
textBox.onmouseup = function() {
// Prevent further mouseup intervention
textBox.onmouseup = null;
return false;
};
};
</script>
Versión jQuery:
$("#foo").focus(function() {
var $this = $(this);
$this.select();
// Work around Chrome''s little problem
$this.mouseup(function() {
// Prevent further mouseup intervention
$this.unbind("mouseup");
return false;
});
});
$(''textarea'').focus(function() {
this.select();
}).mouseup(function() {
return false;
});