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 (0, longitud);
}
else if (objInput.createTextRange) {
var range = objInput.createTextRange() ;
range.collapse(true);
range.moveEnd('character', longitud);
range.moveStart('character', 0);
range.select();
}
}
</script>
Un saludo.