Нечетное автозаполнение + поведение при запоминании пароля - PullRequest
0 голосов
/ 19 января 2009

Мне трудно понять, как Firefox и Chrome определяют, какие поля используются для пароля, и как они автоматически заполняют их в других формах.

Для моей формы входа у меня есть это:

<p>
    <label for="login_email">Email:</label><br />
    <input id="login_email" name="login[email]" size="30" type="text">
</p>

<p>
    <label for="login_password">Password:</label><br />
    <input id="login_password" name="login[password]" size="30" type="password">
    <input id="login_password_hash" name="login[password_hash]" type="hidden">
</p>

<p>
    <input id="login_submit" value="LOGIN" type="submit">
</p>

Поле login_password_hash предназначено для хеширования пароля на стороне клиента перед отправкой с использованием Javascript, поскольку отключение Javascript не меняет результат.

А для создания нового пользователя у меня есть такая форма:

<p>
    <label for="user_email">Email:</label>
    <input id="user_email" name="user[email]" size="30" type="text">
</p>
<p>
    <label for="user_first_name">First Name:</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text">

</p>
<p>
    <label for="user_last_name">Last Name:</label>
    <input id="user_last_name" name="user[last_name]" size="30" type="text">
</p>
<p>
    <label for="user_password">Password:</label>
    <input id="user_password" name="user[password]" size="30" type="password">
    <input id="user_password_hash" name="user[password_hash]" type="hidden">
</p>

<p><input id="user_submit" value="Create User" type="submit"></p>

Теперь после сохранения пароля из формы входа в систему и посещения формы нового пользователя сохраненное электронное письмо помещается в последнее поле перед полем пароля и помещает пароль в поле пароля.

Это происходит в Firefox и Chrome, но не в Internet Explorer. Есть идеи, почему Firefox и Chrome ведут себя так? Эти две формы не имеют ничего общего, все имена и идентификаторы различны.

Ответы [ 3 ]

2 голосов
/ 19 января 2009

Если вы хотите отключить автозаполнение на входе, попробуйте использовать атрибут автозаполнения, например ::

<input type="text" name="email" autocomplete="off" />

Однако это не гарантируется для всех браузеров.

0 голосов
/ 19 января 2009

Кажется, что изменение атрибутов name и id не влияет на менеджеры паролей в Firefox и Chrome, все, что они видят, это поле password_field и поле над ним, и этого для них достаточно.

Итак, я просто создаю поле пароля для создания нового пользователя в виде текстового поля.

0 голосов
/ 19 января 2009

Ну, все браузеры будут подбирать наиболее очевидные имена полей:

  • имя
  • фамилия
  • имя пользователя
  • пароль

И их очевидные альтернативы (подчеркивания для пробелов и некоторые сокращения, такие как «пользователь» и «проход», может быть). Это будет зависеть от самого браузера и его версии о том, какие сумасшедшие альтернативы поддерживаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...