У меня странная ошибка в Firefox, а не в Chrome (оба обновлены).
На странице входа в мой сайт, поля:
<div class="input text required">
<label for="ArchUtilisateurUsername">Identifiant :</label>
<input name="data[ArchUtilisateur][username]" id="ArchUtilisateurUsername" type="text">
</div>
<div class="input password">
<label for="ArchUtilisateurPassword">Mot de passe :</label>
<input name="data[ArchUtilisateur][password]" id="ArchUtilisateurPassword" type="password">
</div>
Затем на другой странице у меня есть форма для создания учетных записей «читателей», которые отличаются от учетных записей пользователей. Он использует ID чтения и пароль в качестве информации для входа в систему, но в этой форме они не находятся рядом друг с другом.
Итак, у меня есть это:
<div class="group-content">
<div id="DivFieldLecteurFormCompteActif" class="input checkbox ">
<input name="data[LecteurForm][compte_actif]" value="" type="hidden">
<input name="data[LecteurForm][compte_actif]" id="FieldLecteurFormCompteActif" value="1" type="checkbox">
<label for="FieldLecteurFormCompteActif">Compte actif</label>
</div>
<div id="DivFieldLecteurFormPassword" class="input password ">
<label for="FieldLecteurFormPassword">Mot de passe</label>
<input name="data[LecteurForm][password]" id="FieldLecteurFormPassword" autocomplete="off" type="password">
</div>
<div id="DivFieldLecteurFormPasswordConfirm" class="input password ">
<label for="FieldLecteurFormPasswordConfirm">Confirmation</label>
<input name="data[LecteurForm][password_confirm]" id="FieldLecteurFormPasswordConfirm" autocomplete="off" type="password">
</div>
</div>
Странная проблема заключается в том, что если пользователь проверяет всплывающее окно Firefox «сохранить мои данные для входа» при входе на веб-сайт, когда он открывает форму «читатель»,
- поле «пароль» заполнено паролем пользователя
- первое предыдущее поле ввода текста в поле пароля заполняется именем пользователя
Начиная с поля пароля: если предыдущий является флажком, выберите, радио, он игнорируется и идите дальше. Если я удаляю поле ввода с именем пользователя из моего источника, при перезагрузке страницы это следующее предыдущее поле ввода, которое получает имя пользователя.
Кажется, все связано с полем пароля:
- Форма входа в систему и форма Reader имеют разные имена полей пароля, но это все еще делает это
- Если я удаляю это поле пароля в коде, после перезагрузки поле «Подтверждение пароля» заполняется паролем пользователя
- Если я удалю оба, пароль пользователя нигде не появится, как и имя пользователя.
- Если я изменю тип поля пароля с «пароль» на «текст» и перезагружаюсь, пароль появляется не в этом поле, а в «подтвердить пароль». И больше не появляется (ни имя пользователя), если я делаю это для обоих.
Последний пункт, кажется, подтверждает, что (по крайней мере, в моем случае), когда Firefox имеет сохраненное имя пользователя / пароль для веб-сайта, он пытается заполнить информацию первым найденным им полем типа пароля, а затем заполняет первое предыдущее текстовое поле.
Как вы можете видеть в коде, он делает это, даже если я поставлю autocomplete="off"
на поле.
Таким образом, Firefox автоматически заполнял неправильную форму, которая даже имеет разные имена полей (и разные идентификаторы полей), с сохраненной информацией для входа в систему. Это известное поведение? Есть ли способ предотвратить это (так как автозаполнение, похоже, не выполняет свою работу)?
Просто чтобы предотвратить другой ответ , я несколько раз удалял все данные из менеджера паролей Firefox, речь не идет о старых именах сохраненных полей.