Sto lavorando con un codice di completamento automatico. setSelectionRange()
viene utilizzato per selezionare il testo completato nel gestore eventi oninput
. Funziona almeno in Firefox 14, ma non in Chrome (6, 17).chrome setSelectionRange() non funziona con il gestore oninput
codice semplificato frammento di dimostrare il problema è come questo:
<input type='text' oninput='select()' />
function select(e){
var s = this.value;
if (s.length)
this.setSelectionRange(s.length-1, s.length);
}
ho il debug del codice in cromo, e si scopre che il testo è stato selezionato alla prima a destra dopo il setSelectionRange()
stato eseguito , ma la selezione è scomparsa in seguito.
Se mi legano il gestore per onclick
invece di oninput
, in questo modo:
<input type='text' onclick='select()' />
poi entrambi i browser funzionano bene.
Qualcuno può darmi qualche indizio per far funzionare la selezione in Chrome?
Poteva essere che avevi bisogno di chiamare 'this.focus()' prima della chiamata a setSelectionRange(). Vedi esempio qui https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#Example –