2009-08-21 43 views
6

Quiero tener una entrada de texto que en el enfoque selecciona todo el texto, si hay alguno. Esto es para poder hacer clic en el ingreso de texto y simplemente comenzar a escribir en lugar de tener que borrar el valor actual, asumiendo que quería sobrescribir lo que ya estaba en la entrada de texto.jQuery establecer el texto seleccionado

¿Cómo puedo hacer esto con jQuery?

+0

no es que el comportamiento por defecto en la mayoría de los navegadores? Acabo de probarlo con FireFox, Opera e IE, y todos resaltan el contenido de una entrada de texto cuando tabulo en ella. –

+0

Chris, lo siento. Parece que estás en lo correcto. No puedo recordar lo que me llevó por el camino de buscar esto, pero me puse tan ocupado en buscar que olvidé simplemente ... probarlo :) –

+0

Ah, ahora lo recuerdo. El texto * no * se selecciona al pasar el mouse por el campo de entrada. Pero está en lo correcto, * es * el comportamiento predeterminado cuando * pestaña * en el campo de entrada. Editaré la publicación. –

Respuesta

6

Couple de los enlaces here.

$("#myInputField").focus(function(){ 
    // Select input field contents 
    this.select(); 
}); 

// Add this behavior to all text fields 
$("input[type=text]").focus(function(){ 
    // Select field contents 
    this.select(); 
}); 
4

seleccionar sólo el texto, que haría algo como:

$(".inputs-to-which-you-want-to-apply-this-behavior").focus(function() { 
    this.select(); 
}); 

Otro enfoque, que no seleccionar el texto, sino que elimina que (sólo para reemplazarlo si sale de la caja vacía, sería algo como esto:

$(document).ready(function() { 
    $(".inputs-that-currently-have-a-default-value-in-them").each(function() { 
    var original = $(this).val(); 
    $(this).focus(function() { 
     if ($(this).val() == original) 
      $(this).val(''); 
    }); 

    $(this).blur(function() { 
     if ($(this).val() == '') 
     $(this).val(original); 
    }); 
    }); 
}); 

(prefiero este último enfoque si el texto eso está en el recuadro para comenzar es texto de marcador de posición como 'Ingrese su nombre', pero si lo que está en la caja es, por ejemplo, el nombre que ingresé la última vez, su idea original de simplemente seleccionar el texto sería mejor)

0

Por lo que probé, este es el comportamiento predeterminado en la mayoría de los navegadores que uso.

Aunque la función select() hace lo que otros dijeron que hace. En cambio, pensé que sería útil establecer el valor del campo de entrada en blanco si el campo estaba enfocado.

Algo así como:

$(":input").focus = function(){if(this.type=="text"){value=""}return true}; 
Cuestiones relacionadas