Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索cookie并将其放入表单javascript中_Javascript_Forms_Cookies_Restore - Fatal编程技术网

检索cookie并将其放入表单javascript中

检索cookie并将其放入表单javascript中,javascript,forms,cookies,restore,Javascript,Forms,Cookies,Restore,我希望这样,当用户返回页面时,应该读取cookie,并使用保存的cookie值还原各个表单字段值。我有一个createCookie()和readCookies()函数,但我被卡住了,不知道如何继续。现在页面保存cookies,但现在我需要将表单字段恢复为重新访问页面时保存的cookies中的值 <html> <body> <form id="registration"> <input name="fname" id="fname"> <inp

我希望这样,当用户返回页面时,应该读取cookie,并使用保存的cookie值还原各个表单字段值。我有一个createCookie()和readCookies()函数,但我被卡住了,不知道如何继续。现在页面保存cookies,但现在我需要将表单字段恢复为重新访问页面时保存的cookies中的值

<html>
<body>
<form id="registration">
<input name="fname" id="fname">
<input name="lname" id="lname">
<input id="street" name="street" type="text">
<input id="city" name="city" type="text">
<select id="state" name="state"><option value="" selected="selected">Choose</option>
<input id="zip" name="zip" type="text">
<input name="email" id="email">
( <input id="phone1" name="phone1" size="3"> )
  <input id="phone2" name="phone2" size="3"> - 
  <input id="phone3" name="phone3" size="4">
</form>

<script type="text/javascript>

var regForm = document.getElementById("registration");
var fname = document.getElementById("fname").value;
var lname = document.getElementById("lname").value;
var street = document.getElementById("street").value;
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
var zip = document.getElementById("zip").value;
var email = document.getElementById("email").value;
var phone1 = document.getElementById("phone1").value;
var phone2 = document.getElementById("phone2").value;
var phone3 = document.getElementById("phone3").value;

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        var expires = "; expires=" + date.toUTCString();
    } 
    else {
        var expires = "";
    }
    document.cookie = name+"="+value + expires;
    alert("Cookie being created " + document.cookie);
}
function readCookies() {
    var myCookie = document.cookie;
    var newCookie = unescape(myCookie);
    var pairs = newCookie.split("=");
    var name = pairs[0];
    var value = pairs[1];
    alert(newCookie);
}

readCookies();

</script>
</body>
</html>

选择
(  )
- 

有更好的方法可以做到这一点,比如HTML5中添加的sessionStorage。但更大的问题是,您必须决定何时保存这些值。最好的解决方案可能是将侦听器附加到每个输入,并在它们失去焦点时保存这些值(用户单击其他内容——表示他/她已完成此字段)

然后添加一个在页面加载时运行的脚本,只要设置存储中存在的每个输入值即可。
document.getElementById(“注册”).value=存储中的值