Один из наших пользователей только что рассказал о том, что их браузеры Autofill не вызывают события JS onChange; это вызывает проблему с регистрацией пользователя для нас.
Это по дизайну? Есть ли способ обойти это?
Один из наших пользователей только что рассказал о том, что их браузеры Autofill не вызывают события JS onChange; это вызывает проблему с регистрацией пользователя для нас.
Это по дизайну? Есть ли способ обойти это?
Одно из решений, которое я иногда использовал, - проверить, отличается ли значение поля/ввода/выбора от него defaultValue. defaultValue будет значением, которое первоначально было в разметке, а значение - текущее значение, выбранное или введенное значение. Это, вероятно, будет отличаться, хотя форма была автопопуляцией.
Если вы хотите полностью отключить автозаполнение, возможно, было бы разумно добавить autocomplete = "off" в поля, которые напрямую связаны с вашей логикой.
Вы пытались использовать onpropertychanged вместо события onchange? Это для IE только, хотя и является рекомендуемым исправлением в MSDN.
На всякий случай кто-то все еще ищет решение (так же, как я был сегодня), чтобы прослушать изменение автозаполнения браузера, вот настраиваемый метод jquery, который я создал, просто для упрощения процесса при добавлении слушателя изменений на вход:
$.fn.allchange = function (callback) {
var me = this;
var last = "";
var infunc = function () {
var text = $(me).val();
if (text != last) {
last = text;
callback();
}
setTimeout(infunc, 100);
}
setTimeout(infunc, 100);
};
Вы можете называть это следующим образом:
$("#myInput").allchange(function () {
alert("change!");
});
Если вы хотите получить поведение автозаполнения, но изменить стиль, возможно, вы можете сделать что-то вроде этого (jQuery
):
$(window).load(function(){
if($('input:-webkit-autofill')){
$('input:-webkit-autofill').each(function(){
//put your conditions here
});
// RE-INITIALIZE VARIABLES HERE IF YOU SET JQUERY OBJECT TO VAR FOR FASTER PROCESSING
}});
Здесь довольно хорошее решение, которое делает что-то похожее на то, что описал jishi:
Обновлена неработающая ссылка на ссылку Wayback Machine