Что может заставить Chrome автозаполнение Chrome перестать работать?
У меня есть новый сайт, который мы работаем, который использует HTML5. Все проверяется, за исключением таблиц стилей LESS и тегов Facebook. Однако Chrome не будет автоматически исправляться. Если я набираю "chr" в поле имени, я получаю стандартное автозаполнение вниз под ним, но выделение, щелчок или выбор опции автозаполнения не завершают форму, как следует. Распаковка автозаполнения просто уходит.
Я угадываю что-то в своем HTML, что запутывает код автозаполнения, но я не могу найти какую-либо информацию в Интернете об использовании Chrome для автозаполнения и о том, что нужно искать, когда это не работает.
Изменить: я знаю, что Autofill работает правильно, потому что он работает на других сайтах, даже на других сайтах, которые мы разработали. Это должно быть чем-то специфичным для HTML на этом сайте.
Ответы
Ответ 1
Кажется, что Chrome только позволяет автозаполнение форм с методом POST. Возможно, это было обновление безопасности для последней версии.
Автозаполнение будет работать, если вы выполните:
<form id="myForm" action="?go" method="post">
Он не будет работать, если вы опустите метод или его установить:
<form id="myForm" action="?go" method="get">
<form id="myForm" action="?go">
Ответ 2
Chrome не будет сохранять пароль или данные автозаполнения, если форма будет представлена асинхронно. Например, если вы отправите следующую форму, Chrome предложит вам сохранить пароль:
<form action="/signin">
<input type="text" name="email" />
<input type="password" name="password" />
<button type="submit">Sign In</button>
</form>
Однако, если вы привязываетесь к событию submit
и переопределяете поведение по умолчанию, не будет приглашения, и данные автозаполнения не будут сохранены:
$(function(){
$('form').submit(function(e){
e.preventDefault();
$.post($(this).attr('action'), $(this).serialize());
});
});
Протестировано в 20.0
Ответ 3
Единственный способ, которым я знаю в HTML для его блокировки, - установить: autocomplete = "off" на входах.
Я знаю, что drop downs не работают иногда с автозаполнением, но не с текстовыми полями.
Ответ 4
Я некоторое время боролся с этой проблемой, я узнал, что атрибут "name" с
тире, например, "email-2", это может привести к тому, что Chrome не будет автозаполнять поле.
В моем случае я изменил его на email2, и теперь он работает.
Это влияет только на атрибут "name", в то время как атрибут "id" не имеет никакого значения.
Я надеюсь, что это поможет кому-то сэкономить время с такой глупой ошибкой.
Привет из Аргентины!
Ответ 5
Извините, я не могу дать вам окончательный ответ, но я бы начал с удаления всего со страницы, кроме поля ввода. Если это сработает, я бы начал "бинарный поиск" - удалить половину исходного макета и посмотреть, работает ли он, если это не так - удалите еще одну половину оставшегося и т.д., Пока не появится проблема.
То же самое можно применить к css, js и т.д. Это довольно эффективный способ поиска ошибок (для 1024 строк кода вы найдете точную проблемную строку всего за 10 шагов).
Ответ 6
Только те элементы, которые требуют автозаполнения, должны находиться внутри формы. В противном случае автозаполнение не будет работать. Применяя только те текстовые поля под формой. Если у уже есть форма с участием других элементов, отделите их и поместите новый тег формы вокруг текстовых полей, которые требуют автозаполнения и ничего больше внутри него.