Firefox запоминает номер телефона как имя пользователя

8

У меня есть страница регистрации, которая включает в себя все стандартные поля, например, номер телефона, адрес электронной почты и т. Д.

Телефон и пароль находятся рядом с вкладкой, то есть физически не смежно, но если вы вкладываете вкладку, она идет по имени -> фамилия -> электронная почта -> телефон -> пароль.

По какой-то причине дает пользователям приглашение запомнить их имя пользователя и пароль при регистрации (что приятно), но сохраняет телефонный номер в качестве имени пользователя.

Существуют ли правила, помогающие ему решить / не дать людям возможность вспомнить очень полезную комбинацию телефонный номер / пароль?

заранее спасибо

РЕДАКТИРОВАТЬ:

  • Имена элементов формы: «Телефон» и «txtpassword».

  • Я хотел бы, чтобы он запомнил электронную почту и пароль. Это достижимо, учитывая текущую ситуацию?

  • К сожалению, я не могу изменить порядок полей формы. Порядок приведен во вкладке выше.

tgandrews
источник
Ха-ха, это происходит со мной тоже
Марк Хендерсон

Ответы:

4

Используйте autocomplete = "off", чтобы отключить автозаполнение, и Firefox (и другие браузеры, которые поддерживают этот нестандартный атрибут) не будут сохранять эти значения.

<input type=text" name="dontsave" autocomplete="off">

Редактировать:

То, что вы видите, может быть связано с именами полей, которые вы используете. При автозаполнении выполняется поиск общих имен полей имени пользователя и имени для входа, и поле вашего телефонного номера может заставить Firefox считать, что это основное поле идентификатора входа в систему.

Изменить 2:

Поле электронной почты до или после поля Телефон? Если это после, можно ли поставить его перед полем Телефон? Если так, это имеет значение?

Джон Конде
источник
Я не думаю, что ОП хочет такого поведения. Кроме того, вы не можете использовать autocompleteна уровне поля, он должен быть на уровне формы, то есть<form autocomplete="false"...
DisgruntledGoat
Вы можете использовать его на уровне поля. Проверьте форму входа на сайте wachovia.com в качестве идеального примера.
Джон Конде
@disgrunt - мы постоянно используем его для элементов поля, в частности для полей с номером CC / полями истечения срока действия.
Марк Хендерсон
2

Как правило, это невозможно без изменения порядка полей или без взлома. Ваше usernameполе должно быть прямо перед вашим passwordполем в Firefox.

У меня была та же проблема, но фамилия вместо телефона . После нескольких часов попыток этот ответ дал понять. Firefox (по крайней мере, в текущей версии) ищет поле пароля. Затем он принимает поле перед ним как поле имени пользователя и спрашивает пользователя, хочет ли он сохранить эти учетные данные.

Автозаполнение не является (главной) проблемой здесь. Даже если автозаполнение отключено для всей формы, Firefox все равно спросит, хотите ли вы сохранить свои учетные данные.

Нелу
источник
2

Вы можете сделать что-то вроде этого:

<input type="text" name="username" autocomplete="username">
<input type="default" name="email" autocomplete="email">
<input type="password" name="password" autocomplete="new-password">

Firefox в текущей версии ищет первое поле пароля. Оттуда он ищет первое предшествующее поле типа textили emailнаходит поле имени пользователя.

Таким образом, мы можем обмануть его, используя недопустимый тип поля ( defaultНЕ является допустимым типом поля). Так что теперь вам не нужно переупорядочивать поля, чтобы удовлетворить Firefox. Когда браузер не знает тип поля, он просто отображает обычное текстовое поле.

Safari использует другой механизм, и у меня не было проблем с ним. Я думаю, что это смотрит на названия полей.

Эти атрибуты автозаполнения дают браузер дополнительную индикацию о том, что каждое поле используется.

Б. Мартин
источник
1

Я заметил подобное поведение в Google Chrome раньше. Какие имена даны полям ввода? Я знаю, что у браузеров часто возникают проблемы с полями, если они используют код, например, name="signup[email]"для передачи всего в одной переменной на сервер (очень полезно в PHP).

Вы можете попробовать использовать этот простой формат: <input name="username" type="text">с emailи passwordкак имена для этих двух полей. (Примечание: я на самом деле не проверял это, когда сталкивался с такой ситуацией до того, как не смог изменить имена полей.)

DisgruntledGoat
источник