【问题标题】:Set cookie and display the value of cookie设置cookie并显示cookie的值
【发布时间】:2015-04-02 07:18:50
【问题描述】:

我正致力于在 Cookie 中存储和读取信息。所以基本上我有两个带有名称字段的 HTML 页面。在第 1 页上,我必须读取该字段并将值保存到 cookie 中。然后提交,它将转到第 2 页,读取 cookie 并显示我在第 1 页输入的名称。但是,我无法在第 2 页显示第 1 页的值。这是我的代码:

第 1 页:

<html>
<head>
<title>Save Value</title>
    <script type="text/javascript">
        function setCookie(cname, cvalue) {
            document.cookie = cname + "=" + cvalue + "; ";
        }
    </script>
</head>
<body>
<form action="display.html" method="get">
<label> 
First Name:
<input name="name" size="20" maxlength="25" type="text" id="name" />
</label>
<input type="submit" value="submit" onclick="setCookie()" />
</form>
</body>
</html> 

第 2 页:

    <html>
    <head>
    <title>Display</title>
    <script type="text/javascript">
    function readCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}
</script>
    </head>

    <body>
    <form action="#">
    <label>
    First Name:
    <input name="namefield" size="20" maxlength="25" type="text" id="name" readonly="readonly" />
    </label>
    <script type="text/javascript">
    var val1 = document.getElementById("name").value;
    val1 = readCookie('namefield');
    </script>
    </form>
    </body>
    </html>

对这个问题有任何想法吗?非常感谢!

【问题讨论】:

    标签: javascript cookies


    【解决方案1】:

    你调用 setCookie() 不带参数

    <input type="submit" value="submit" onclick="setCookie('name', document.getElementById('name').value)" />
    

    那么你的读取 cookie 和设置值的代码也有问题,尝试检查 jsfiddle,在一页上做所有事情http://jsfiddle.net/ApfJz/44/

    通过以下方式获取cookie和设置值

           <input type="submit" value="Get cookie" onclick="document.getElementById('name2').value = readCookie('name')" />
    

    您的代码根本没有设置值并读取错误的 cookie 名称

    var val1 = document.getElementById("name").value;
    val1 = readCookie('namefield');
    

    所以在你的第 2 页上它可以像那样工作

    document.getElementById('name').value = readCookie("name");
    

    【讨论】:

    • 感谢您的帮助,但第 2 页仍然没有显示任何内容。
    猜你喜欢
    • 2012-09-05
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    相关资源
    最近更新 更多