Safari Autofill: подсказки пароля для запуска в форме регистрации разработки
У меня очень стандартное приложение Rails 4 с помощью Devise 3
Я хочу иметь регистрационную форму для запуска предложений пароля в текущей версии Safari: (Mavericks):
![use safari suggested password]()
iCloud Keychain включен, и я получаю предложения на других страницах, только моя форма не работает с этим по какой-то причине.
Я не могу понять, что именно нужно, чтобы предлагать предложения.
Вот форма, которая создает:
<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post">
<div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" />
<input name="authenticity_token" type="hidden" value="SKtqmi1L/BKcTE/Hvlvw1H3ZRH8nd2UNiNnVILuLS/E=" />
</div>
<div>
<label for="user_email">Email</label><br />
<input autofocus="autofocus" id="user_email" name="user[email]" type="email" value="" />
</div>
<div>
<label for="user_password">Password</label><br />
<input id="user_password" name="user[password]" type="password" />
</div>
<div>
<label for="user_password_confirmation">Password confirmation</label><br />
<input id="user_password_confirmation" name="user[password_confirmation]" type="password" />
</div>
<div><input name="commit" type="submit" value="Sign up" /></div>
</form>
Ответы
Ответ 1
Apple принимает новые свойства autocomplete
: current-password
и new-password
У меня была такая же проблема с моим сайтом посвященная тестовым примерам генерации паролей, чтобы улучшить генераторы паролей.
Как указано в [PDF] руководстве, сделанным Apple, свойство autocomplete
теперь принимает заданные значения, чтобы помочь с этой проблемой.
См. Здесь спецификацию вместе с другими допустимыми значениями: https://html.spec.whatwg.org/multipage/forms.html#attr-fe-autocomplete-new-password
<form method="post" action="/tests/4/register-submit" >
<label>
<div>Name</div>
<input
name="name"
placeholder="name"
autocomplete="name"
type="text"
pattern=".{4,}"
title="Needs to be 4 characters long."
required
/>
</label>
<label>
<div>Username</div>
<input
name="username"
placeholder="Username"
type="text"
autocomplete="username"
pattern=".{4,}"
title="Needs to be 4 characters long."
required
/>
</label>
<label>
<div>Password</div>
<input
name="password"
placeholder="Password"
type="password"
autocomplete="new-password"
required
/>
</label>
<input type="submit" value="Register" />
</form>
Этот код работает из-за используемого свойства autocomplete="new-password"
. autocomplete="current-password"
также возможно для форм входа.
Это было проверено как работа с помощью: @simevidas
Ответ 2
Я проверил ваш код и успешно предложил пароль. Таким образом, у вас есть проблема, отличная от вашего HTML.
Убедитесь, что верно следующее:
-
Ваш сервер правильно выводит вашу веб-страницу в виде содержимого HTML с кодом ответа 200. (Вы можете увидеть это с помощью любых инструментов разработчика браузера.)
-
Вы используете последнюю версию Safari (7. +)
-
Автозаполнение имен пользователей и паролей проверяется в Safari > Настройки > Пароли.
-
Попробуйте удалить все сохраненные пароли для своего домена в Safari.
-
У вас Keychain отмечен Вкл в iCloud (системные настройки > iCloud)
Ответ 3
Возможно добавление атрибута autocomplete = "on" к форме или тегу ввода.
http://www.w3schools.com/HTML/html5_form_attributes.asp