chrome setSelectionRange () не работает в обработчике oninput

Я работаю с авто-завершения кода. setSelectionRange() используется для выбора текста, завершенного в oninput обработчик событий. Это работает, по крайней мере, в Firefox 14, но не в Chrome(6, 17).

упрощенный фрагмент кода, демонстрирующий проблему, как это:

<input type='text' oninput='select()' />
function select(e){
    var s = this.value;
    if (s.length)
        this.setSelectionRange(s.length-1, s.length);
}

Я отладил код в chrome, и оказывается, что текст был выбран сначала сразу после setSelectionRange() был выполнен, но выбор исчез позже.

если я свяжу обработчик onclick вместо oninput, например:

<input type='text' onclick='select()' />

затем оба браузера работают нормально.

может ли кто-нибудь дать мне подсказку, чтобы сделать выбор в Chrome?

1 ответов


есть некоторые проблемы с вашим кодом, а именно, что параметры, передаваемые в