2015-03-25 3 views
3

Как предотвратить включение события ввода после фокуса/установить событие Range Range в IE? Пример кода здесь:Событие фокуса запускает входное событие в IE и современных браузерах

var setSelectionRange = function (input, selectionStart, selectionEnd) { 
    if (input.setSelectionRange) { 
     input.focus(); 
     input.setSelectionRange(selectionStart, selectionEnd); 
    } 
    else if (input.createTextRange) { 
     var range = input.createTextRange(); 
     range.collapse(true); 
     range.moveEnd('character', selectionEnd); 
     range.moveStart('character', selectionStart); 
     range.select(); 
    } 
}; 
+0

Какая версия IE вызывает проблемы? Ваш код [кажется, не срабатывает oninput] (http://jsfiddle.net/r7pzyyey/) в IE11. Также поможет [mcve] (http://stackoverflow.com/help/mcve). – Teemu

+0

общий шаблон проектирования для выбора по фокусу -

+0

1. Все версии IE. 2. В шаблоне html у меня также есть заполнитель для ввода.

ответ

0

После долгих исследований я решил сменить функциональность. Есть условие для ввода строки. Если он не пуст, чем фокус, и установите позицию Caret. Теперь входное событие запускает только входной текст не пуст. Это кросс-браузерное решение.