对于我的登录表单,firefox保存但chrome不提示“保存密码”框。我试过添加autocomplete =“on”,但它无法正常工作。任何人都可以建议我的答案。我不想使用任何扩展。我的代码如下。
<form spellcheck="false" autocomplete="on" id="login-form" action="/user/login/do-login" method="post">
<div class="separator-bar"></div>
<div class="credentials-container">
<div class="username-container">
<div class="label">Email/Username: </div>
<div class="field">
<input class="wx-input" type="text" name="<?php echo $this->escape(App_Api_User::ARG_USERNAME)?>" value="<?php if(isset($this->username)) {echo $this->username;}?>" spellcheck="false"/>
</div>
</div>
<div class="password-container">
<div class="label">password: </div>
<div class="field">
<input class="wx-input" type="password" name="<?php echo $this->escape(App_Api_User::ARG_PASSWORD)?>"/>
</div>
</div>
</div>
<div class="separator-bar bottom"></div>
<div class="forgot-password-container">
<div class="text">forgot password: </div>
<div class="password-page button"><a class="loginForgotPassword" href="#">CLICK HERE</a></div>
</div>
<div class="submit-container">
<input class="login button disabled" type="submit" name="submit" value="GO" />
</div>
<div id="infoMessageContainer">
</div>
<div class="general-error"></div>
</form>
$('body').on('click', '.submit-container .login', function(e) {
if ($(this).hasClass('disabled')) {
e.preventDefault();
e.stopPropagation();
}else{
var self = this;
self.submit();
}
});
_success: function()
{
window.location.href = '/user';
}
答案 0 :(得分:1)
所有浏览器都使用启发式方法来了解何时保存密码。我熟悉Firefox和Chrome。他们使用的启发式似乎是:
以下列举了我通常看到的破坏这些算法的内容:
答案 1 :(得分:0)
我做了很多更改,然后最终使用下面的代码块。 希望它会帮助某人。您需要使用此代码提交表单。
var winNav = window.navigator,
isIOSChrome = winNav.userAgent.match("CriOS");
var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
//Use below if statement, if you want to run only in chrome
if(isChrome || isIOSChrome){
$('#login-form').submit(function () {
if(-1 !== this.action.indexOf('/login')) {
var jForm = $(this);
$.post(this.action, $(this).serialize(), function (data) {
if (data.success == true) {
jForm[0].action = '/user';
jForm.submit();
}
});
return false;
}
});
}