Задать вопрос

Срабатывание автозаполнения полей на других формах в Chrome и Safari

Привет всем! Может кто сталкивался, такая проблема, есть две формы на разных страницах, на сайте, авторизация и регистрация.

Форма авторизации:
form#login(action="/login", method="post")
    input#login_username(type="text", name="login_username", placeholder="Username")
    input#login_password(type="password", name="login_username", placeholder="Password")

Форма регистрации:
form#register(action="/sign-up", method="post")
    input#sign_up_email(type="email", name="sign_up_email", placeholder="E-mail")
    input#sign_up_username(type="text", name="sign_up_username", placeholder="Username")
    input#sign_up_password(type="password", name="sign_up_password", placeholder="Password")

Так вот, при авторизации браузер спрашивает, сохранить ли пароль? Если ему разрешить и после авторизации попробовать открыть форму регистрации, то она будет заполнена теми же данными, но мне это не нужно. Причем autocomplete="off" не помогает. Как он распознает поля? Имена и ID разные у всех полей. Не помогает изменение порядка полей и даже удаление поля "username" (в этом случае он заполняет "email" вместо "username".

Какой-то хаос. Неужели нет метода как-то этим управлять?
  • Вопрос задан
  • 7444 просмотра
Подписаться 3 Оценить Комментировать
Ответ пользователя dark-grey К ответам на вопрос (7)
@dark-grey
как то тоже нужно было отрубить браузеру автозаполнение, при чем все танцы с autocomplete не давали никакого результата - браузер все равно усердно заполнял поля логином и паролем

помогло только прописать инпуту readonly свойство и удалять его при наведении мышью, в этом случае пользователь не заметит отличий

<input name="password" type="password" readonly onmouseover="this.removeAttribute('readonly')">


вариант с autocomplete="new-password" похоже тоже должен работать, правда возможно не во всех браузерах
https://developer.mozilla.org/en-US/docs/Web/Secur...
Ответ написан
Комментировать