how to remember input data in the forms even after refresh page?

后端 未结 10 1479
日久生厌
日久生厌 2020-11-27 17:11

what to do in order to make the form remember the previous input or the current input of the user even after he/she refreshed the page ?

should I do ,



        
10条回答
  •  难免孤独
    2020-11-27 17:59

    I had similar issue at one of my project so I wrote some js to handle this using cookies. First I found two simple functions to set and get cookies values:

    function setCookie(c_name, value, exdays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + exdays);
        var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
        document.cookie = c_name + "=" + c_value;
    }
    
    function getCookie(c_name) {
        var c_value = document.cookie;
        var c_start = c_value.indexOf(" " + c_name + "=");
        if (c_start == -1) {
            c_start = c_value.indexOf(c_name + "=");
        }
        if (c_start == -1) {
            c_value = null;
        } else {
            c_start = c_value.indexOf("=", c_start) + 1;
            var c_end = c_value.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = c_value.length;
            }
            c_value = unescape(c_value.substring(c_start, c_end));
        }
        return c_value;
    }
    

    Than I wrote two other functions to set and get input values:

    function saveValue(input) {
        var name = input.attr('name');
        var value = input.val();
        setCookie(name,value);
    }
    
    function getValue(input) {
        var name = input.attr('name');
        var value = getCookie(name);
        if(value != null && value != "" ) {
            return value;
        }
    }
    

    And using jQuery I save user's input value to session cookie

    $('input[type=text]').each(function(){
        var value = getValue($(this));
        $(this).val(value);
    }).on('blur', function(){
        if($(this).val() != '' ) {
            saveValue($(this));
        }
    });
    

    I hope it'll help ;)

提交回复
热议问题