В моем проекте используются редукс-формы, и я пытаюсь заставить автозаполнение работать с формой входа и регистрации.Я следил за всеми документами, которые мог найти при автозаполнении, и это работает для любого браузера, кроме iOS Safari.
Я добавил все применимые атрибуты автозаполнения, и форма отправляется, как и должно быть.Когда пользователь завершает вход в систему или регистрируется, затем переходит к взаимодействию со страницей по-другому, он работает нормально.Имея это в виду, я попробовал пару вещей, чтобы заставить его всплывать.При попытке войти я перенаправил пользователя.Ничего такого.Я выдал предупреждение.Ничего такого.и теперь я здесь!
Форма входа:
<form onSubmit={this.login.bind(this)} autoComplete="on">
<Field
component={TextField}
id="email"
fullWidth
autoComplete="email"
hintText="Email"
name="email"
type="email"
normalize={R.toLower}
validate={[required, email]}
{...FormElements.styles.text}
/>
<Field
id="password"
autoFocus={!!login_email}
component={TextField}
fullWidth
autoComplete="current-password"
hintText="Password"
name="password"
type="password"
onKeyPress={this.passwordOnKeyPressHandler.bind(this)}
validate={[required]}
{...FormElements.styles.text}
/>
{error && <div className="form-error m-t">{error}</div>}
<div className="text-center m-t">
<div className="m-b-sm">
Don't have an account?{" "}
<a
className="register-link"
href="javascript:void(0)"
onClick={() =>
this.props.toggle(this.props.VIEWS.REGISTER)
}
>
Register
</a>
</div>
<div className="">
<a
className="forgot-password-link"
href="javascript:void(0)"
onClick={() => this.props.toggle(this.props.VIEWS.FORGOT)}
>
forgot password?
</a>
</div>
</div>
<div className="register__footer visible-md visible-lg">
{this.renderBtn({ size: "large" })}
</div>
<div className="auth__switch-view visible-xs visible-sm">
<div className="m-t">{this.renderBtn()}</div>
</div>
</form>
кнопка:
<div className="register__action-btn-container">
<Button
type="submit"
disabled={submitting}
label={submitting ? "Logging in ..." : "Login"}
size={params && params.size}
/>
</div>
функция входа:
login(e) {
// e.preventDefault();
document.querySelector('input[name="password"]').blur();
// this.props.handleSubmit();
$S.dispatch(submit(LOGIN_FORM));
// On mobile, we have to force the username and password to be stored.
miscUtils.triggerSavePasswordPrompt(e);
}
Пытаясьзаставить его ...
function triggerSavePasswordPrompt(event) {
if (window.PasswordCredential && event) {
let c = new PasswordCredential(event.target);
navigator.credentials.store(c);
} else {
alert("shizs effed yo")
}
}
Я ожидаю, что появится подсказка, чтобы сохранить или предложить пароль, когда пользователь отправит на iOS Safari.Это не.Тем не менее, он покажет запрос автозаполнения, если пользователь имеет сохраненный пароль.