Estoy trabajando con algún código de autocompletado. setSelectionRange()
se usa para seleccionar el texto completado en el controlador de eventos oninput
. Funciona al menos en Firefox 14, pero no en Chrome (6, 17).chrome setSelectionRange() no funciona en el controlador oninput
simplificado fragmento de código que demuestra el problema es la siguiente:
<input type='text' oninput='select()' />
function select(e){
var s = this.value;
if (s.length)
this.setSelectionRange(s.length-1, s.length);
}
I depurado el código en cromo, y resulta que se ha seleccionado texto en un primer momento justo después de la setSelectionRange()
sido ejecutados , pero la selección desapareció más tarde.
Si Ato el manejador a onclick
en lugar de oninput
, así:
<input type='text' onclick='select()' />
entonces ambos navegadores funcionan bien.
¿Alguien puede darme alguna pista para hacer que la selección funcione en Chrome?
Podría haber sido que se necesitaba para llamar 'this.focus()' antes de la llamada a setSelectionRange(). Vea el ejemplo aquí https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#Example –