Ich arbeite mit einigen Auto-Vervollständigungscode. setSelectionRange()
wird verwendet, um den Text auszuwählen, der in oninput
Event-Handler abgeschlossen wurde. Es funktioniert zumindest in Firefox 14, aber nicht in Chrome (6, 17).chrome setSelectionRange() funktioniert nicht in oninput handler
Simplified Code-Snippet, das Problem demonstriert ist wie folgt:
<input type='text' oninput='select()' />
function select(e){
var s = this.value;
if (s.length)
this.setSelectionRange(s.length-1, s.length);
}
ich den Code in Chrom debuggt, und es stellt sich heraus, dass der Text zunächst rechts ausgewählt wurde, nachdem die setSelectionRange()
ausgeführt worden , aber die Auswahl verschwand später.
Wenn ich binden den Handler zu onclick
statt oninput
, wie folgt aus:
<input type='text' onclick='select()' />
dann beide Browser funktionieren.
Kann mir bitte jemand einen Hinweis geben, damit die Auswahl in Chrome funktioniert?
Es könnte gewesen sein, dass Sie 'this.focus() aufrufen, benötigt' vor dem Aufruf von setSelectionRange(). Siehe Beispiel hier https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#Example –