【发布时间】:2018-09-25 06:18:23
【问题描述】:
$(function() {
if (localStorage.chkbx && localStorage.chkbx != '') {
$('#modal_login_remember').attr('checked', 'checked');
$('#modal_login_email').val(localStorage.usrname);
$('#modal_login_password').val(localStorage.pass);
} else {
$('#modal_login_remember').removeAttr('checked');
$('#modal_login_email').val('');
$('#modal_login_password').val('');
}
$('#modal_login_remember').click(function() {
if ($('#modal_login_remember').is(':checked')) {
// save username and password
localStorage.usrname = $('#modal_login_email').val();
localStorage.pass = $('#modal_login_password').val();
localStorage.chkbx = $('#modal_login_remember').val();
} else {
localStorage.usrname = '';
localStorage.pass = '';
localStorage.chkbx = '';
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<p style="text-align: center"><i>Enter your email ID and password to log in to Help.</i></p>
<div id="errormsg" style="display: none; color:red;text-align: center; padding-bottom: 1.2rem;"> Invalid token or login credentials, please log in again.</div>
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-envelope"></i>
</span>
<input type="email" id="modal_login_email" name="modal_login_email" class="form-control" placeholder="Enter email" />
</div>
</div>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-unlock-alt"></i>
</span>
<input type="password" id="modal_login_password" name="modal_login_password" class="form-control" placeholder="Password" />
</div>
</div>
<label class="custom-control custom-checkbox">
<input type="checkbox" id="modal_login_remember" class="custom-control-input" />
<span class="custom-control-indicator"></span>
<span class="custom-control-description">Remember me</span>
</label>
<div class="modal-footer">
<input type="button" onclick="login(document.getElementById('modal_login_email').value,document.getElementById('modal_login_password').value);" class="btn btn-primary" value="Login" style="background-color: #19659d; border-color: #19659d;" />
</div>
如果用户在登录时点击记住复选框,详细信息应保存在localstorage。如果用户尝试再次登录,用户详细信息应自动完成(如果用户键入他的姓名的几个字母,则名称和密码应自动完成)。它没有api,所以我需要从前端做。
该值存储在本地存储中,但自动完成功能无法接近它。
【问题讨论】:
-
我在您的 HTML 中没有看到任何 ID 为 remember_me 的 checbkox。
-
你应该使用 'prop' 作为检查状态 - $('#modal_login_remember').prop('checked', true);或 $('#modal_login_remember').prop('checked', false);
-
这个
localStorage.pass = $('#modal_login_password').val();很糟糕!你的整个尝试都是错误的。您不会将登录信息存储在任何位置尤其是密码,您将会话 ID 存储在 cookie 中。如果此会话仍然有效,则您已登录,否则由您的客户进行身份验证;很可能是通过浏览器中存储的密码。但是您不存储客户的登录凭据。 “我需要一个记住我功能。”在这种情况下,你不要让它成为会话cookie,而是让它在没有登录的情况下1周后过期。
标签: javascript jquery html local-storage