Ver Mensaje Individual
  #7 (permalink)  
Antiguo 09/08/2007, 12:49
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: seleccionar texto en input al seleccionar?

Hola:

Código:
function selecciona_value(idInput) {

valor_input = document.getElementById(idInput).value ;
longitud = valor_input.length;

var selectionEnd = 0 + 1;
if (document.getElementById(idInput).setSelectionRange) {
document.getElementById(idInput).focus();
document.getElementById(idInput).setSelectionRange (0, longitud);
}
else if (input.createTextRange) {
var range = document.getElementById(idInput).createTextRange() ;
range.collapse(true);
range.moveEnd('character', 0);
range.moveStart('character', longitud);
range.select();
}
}
Tienes en el código marcado en rojo las cosas que he cambiado para que me funcione bien. La variable selectionEnd no la utilizas para nada, utilizas longitud en su caso, así que no sería útil declararla.

La condicional para FF tiene una variable no definida, input, por lo cual no puede entrar nunca en la condicional. De hecho, da error.

Lo último es que habías puesto en end a 0 y el start a longitud, y debería ser al revés.



Con esos cambios, funcionará perfecto. De todas maneras veo que utilizas su ID, te voy a dejar el ejemplo con this para que te vayas haciendo a él, es mucho más cómodo:
Código PHP:
<input type="text" onfocus="selecciona_value(this)" value="soy todo el texto" />

<
script type="text/javascript">

function 
selecciona_value(objInput) {

    var 
valor_input objInput.value;
    var 
longitud valor_input.length;

    if (
objInput.setSelectionRange) {
        
objInput.focus();
        
objInput.setSelectionRange (0longitud);
    }
    else if (
objInput.createTextRange) {
        var 
range objInput.createTextRange() ;
        
range.collapse(true);
        
range.moveEnd('character'longitud);
        
range.moveStart('character'0);
        
range.select();
    }
}

</script> 


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.