如何将用户文本输入html输入保存为cookie

时间:2013-12-24 20:47:44

标签: javascript html cookies

我在编写与JavaScript混合的HTML时遇到了很多麻烦。 我有一个输入框,用于将输入分配给变量。我希望该输入框将输入分配给cookie,如果在网站中输入了cookie,则会重定向您。现在,如果您输入了cookie,我可以让它重定向您,至少我认为并且我还有一个输入框。现在,如果有人能帮助我,这将是伟大的。

以下是Cookie的代码

function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
return "";
}

function checkCookie()
{
var user=getCookie("username");
if (user!="")
  {
  window.location.assign("http://....")  //if the user has a cookie saved it will redirect them to a newpage
  }
else 
  {
  user = prompt("Please enter your name:",""); // I do not want a prompt I want a input box
  if (user!="" && user!=null)
    {
    setCookie("username",user,30);
    }
  }
}

</script>

这是输入框的html:

<div id="container">
    <input type="text" id="input"/>
    <button id="trigger">enter</button>
</div>

以下是使输入成为变量的javascript:

  var trigger = document.getElementById("trigger");
trigger.addEventListener("click",
    function () {
    var input = document.getElementById("input");

}, false)

你不必使用我的html,但要回顾一下:我想要一个输入框不是弹出用户,而是一些信息用于他们的cookie,如果信息在那里,它将它们重定向到另一个页面。

如何将字符串变成cookie? 或者你如何输入cookie?

2 个答案:

答案 0 :(得分:1)

从我能理解的最好的问题:

<div id="container">
<input type="text" id="input"/>
<button id="trigger">enter</button>
</div>


你的js:

var trigger = document.getElementById("trigger");
trigger.addEventListener("click",
    function () {
    var input = document.getElementById("input");
    setCookie("user",input.value,30) // Just getting the id is an object and you can access things in that object

}, false)

答案 1 :(得分:0)

所以我看到我做错了什么,感谢@vulpus的一些提示/帮助。我需要将用户输入变量作为参数添加到函数中,然后调用check cookie函数,以便重定向用户。

的Cookie:

 <script>

function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
return "";
}

function checkCookie()
{
var user=getCookie("username");
if (user!="")
  {
  window.location.href ="http://stackoverflow.com/questions/20766590/how-to-save-user-text-input-html-input-as-cookie" 
  }
else 
  {
  if (user!="" && user!=null)
    {
    setCookie("username",user,30);
    }
  }
}

</script>

html输入:

   <input type="text" id="userInput"=></input>
    <button onclick="test()">Submit</button>

将html中的userInput变为一个变量并将其作为cookie输入:

<script>
        function test()
        {
            var userInput = document.getElementById("userInput").value;
            setCookie("username",userInput,30);
            checkCookie();
        }
</script>