Это кажется странной проблемой.Я работаю над расширением, которое поддерживает несколько браузеров.В процессе, когда пользователь попадает на страницу входа, мой плагин проверяет поля ввода имени пользователя и пароля и заполняет их некоторыми текстовыми значениями.У меня есть веб-сайт с элементами ввода input[type="email]
и input[type="password"]
для имени пользователя и пароля соответственно.
Мой плагин может идентифицировать и выбирать элементы ввода с помощью селекторов, но когда значение элемента ввода обновляется с помощью element.value = "<email>"
, я вижу обновленное значение в пользовательском интерфейсе, но атрибут "value" <input>
на HTML не обновляется.
После некоторых строгих следов я обнаружил, что мне нужно вызвать событие ввода для обновления атрибута значения элемента <input>
, который работает на chrome, Firefox, safari и edge, но не на IE.Для всех браузеров я вижу, что атрибут «значение» обновляется, как только событие ввода запускается для элемента, но не для IE.В чем может быть причина?IE версия 11.0.9600.
function updateInput(element, value){
element.value = value;
//you can see the element outer HTML is not updating
window.alert(
"element.value: " + element.value +" \n element:" + element.outerHTML);
}
updateInput(document.querySelector('input[type="email"]'), "e@e.com");
<div>
<div class="auth0-lock-input-block auth0-lock-input-email">
<div class="auth0-lock-input-wrap auth0-lock-input-wrap-with-icon">
<input type="email" name="email" class="auth0-lock-input" placeholder="yours@example.com" autocomplete="off" autocapitalize="off" value>
</div>
</div>
<div class="auth0-lock-input-block auth0-lock-input-show-password">
<div class="auth0-lock-input-block auth0-lock-input-password">
<div class="auth0-lock-input-wrap auth0-lock-input-wrap-with-icon">
<input type="password" name="password" class="auth0-lock-input" autocomplete="off" autocapitalize="off" value placeholder="your password">
</div>
</div>
</div>
</div>