【发布时间】:2011-07-06 07:07:39
【问题描述】:
使用 Javascript,我想在每次按下按钮时创建一个带有 id 为“用户名”的输入字段的值的 cookie。然后我想读取该 cookie 并将其显示在网站上。虽然我只是尝试这个来测试我对 cookie 的了解,但我现在想知道这个问题的解决方案,因为我的代码不起作用。
我将使用来自 elated.com 的这两个函数:
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
var cookie_string = name + "=" + escape ( value );
if ( exp_y )
{
var expires = new Date ( exp_y, exp_m, exp_d );
cookie_string += "; expires=" + expires.toGMTString();
}
if ( path )
cookie_string += "; path=" + escape ( path );
if ( domain )
cookie_string += "; domain=" + escape ( domain );
if ( secure )
cookie_string += "; secure";
document.cookie = cookie_string;
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
当按钮被按下时,这个函数将会运行:
function Register()
{
var username = document.getElementById("username").value; //Read the input value
set_cookie("username", username, 2012, 12, 23); //Set the cookie
document.write(get_cookie("username")); //Read the cookie
}
每当我尝试运行它时,get_cookie 函数都会返回 null。这意味着它至少可以成功运行,但没有找到任何名为“用户名”的 cookie,即使我刚刚创建了它。有人可以帮忙吗?
【问题讨论】:
-
document.getElementById("username").value的值是多少? -
用户在 中输入的内容。
-
嗯,是的。但是您确定正在设置用户名(在 javascript 中)吗?基本上,
usernamevar username = document.getElementById("username").value;的值是多少? -
你的函数对我来说很好,除非值是空字符串
-
这是您的代码jsfiddle.net/DfkEJ/2 的 jsfiddle。它有效。
标签: javascript html cookies