HTML5 localstorage在登录框中记住我

时间:2014-06-11 06:36:04

标签: jquery html5 checkbox local-storage

我有一个功能,一旦单击“记住我”复选框,就会在本地存储中存储用户名和密码。到目前为止它工作正常,但该功能仅在用户在输入字段中输入他/她的用户名和密码然后单击“记住我”复选框时才有效。

总之,有两种情况:

1)输入用户名和密码 - >点击“记住我”复选框 - >提交表格(工作正常)

2)点击记住我复选框 - >输入用户名和密码 - >提交表格(不工作 - 显示空白字段。)

如何修改我的功能,并确保如果用户点击“先记住我”复选框,然后输入用户名和密码,则会在页面刷新时或当用户再次返回网站时填写字段。

这是我的功能:

$(function() {

    if (localStorage.checkBoxValidation && localStorage.checkBoxValidation != '') {
        $('#rememberMe').attr('checked', 'checked');
        $('#loginEmail').val(localStorage.userName);
        $('#password').val(localStorage.password);
    } else {
        $('#rememberMe').removeAttr('checked');
        $('#loginEmail').val('');
        $('#password').val('');
    }

    $('#rememberMe').click(function() {

        if ($('#rememberMe').is(':checked')) {
            // save username and password
            localStorage.userName = $('#loginEmail').val();
            localStorage.password = $('#password').val();
            localStorage.checkBoxValidation = $('#rememberMe').val();
        } else {
            localStorage.userName = '';
            localStorage.password = '';
            localStorage.checkBoxValidation = '';
        }
    });
});

2 个答案:

答案 0 :(得分:5)

您不应该听取特定表单元素的点击事件,而应该听取表单的提交事件。

提交表单时,您掌握了手头所有字段的信息,用户填写表单字段的顺序无关紧要。

$('#my-form').on('submit', function() {
    /* place your logic here… */
});

答案 1 :(得分:2)

将数据存储在表单提交功能

$('#urformid').on('submit', function() {

        if ($('#rememberMe').is(':checked')) {
            // save username and password
            localStorage.userName = $('#loginEmail').val();
            localStorage.password = $('#password').val();
            localStorage.checkBoxValidation = $('#rememberMe').val();
        } else {
            localStorage.userName = '';
            localStorage.password = '';
            localStorage.checkBoxValidation = '';
        }

        //Other form functions
});