如何使用jquery在cookie中保存数据

时间:2014-01-02 05:55:12

标签: javascript jquery html cookies

我正在尝试将某些数据保存到cookie中,这样如果我从一个页面跳到另一个页面,输入的数据应该保存并在刷新时检索回来。 我有一个链接:

<div class="esc-policy">
     <a href="#">New Link</a>    
</div>

在我点击事件之前,我需要保存输入的以下数据字段:

     <table class="form">
       <tr>
          <td class="label">
                <label>Name*</label>
                <input id="nameInput" type="text" maxlength="100"/>
         </td>    
        <td class="label">
               <label>Description</label>
               <input id="descriptionInput" type="text" maxlength="200" >
        </td>
       </tr>
    </table>

我有这样的东西作为我的js:

if ($.cookie('back_to_url_onPage_referesh')) {
  this.name.attr("value", $.cookie('name'));
  this.description.attr("value", $.cookie('description'));
}

我不确定这是如何工作的。有人可以帮忙!!

提前致谢...

我能够将值保存在cookie中...但是我仍然不知道如何在从一个url跳回到另一个url时检索它。例如:我有一个网址:('#/ link / create')即可创建此Cookie ...单击<a href="#">New Link</a> ..我需要导航到另一个网址'#/ new-link / create',输入该页面上的几个表单字段,当我点击保存按钮 - <a href="#" class="btn">Save</a>,时,它应该带我回到这个网址:('#/ link / create')..当我在页面之间导航时,数据已经消失了,如何在UI端保存该数据???

4 个答案:

答案 0 :(得分:9)

$(".esc-policy  a").on('click',function(){
   var name = $("#nameInput").val(),
   description = $("#descriptionInput").val();
   $.cookie('back_to_url_onPage_referesh', 1);
   $.cookie('name',name);
   $.cookie('description',description);
});

如果您添加此代码,它将在您的js中工作。如果你不在jquery中使用cookie插件。使用native document.cookie表达式,或使用cookie函数扩展jquery对象

你可以使用这个插件    https://code.google.com/p/cookies/wiki/Documentation#With_jQuery

答案 1 :(得分:8)

使用Cookies检查jQUery Cookie插件

https://github.com/carhartl/jquery-cookie

然后你可以这样做:

$.cookie("test", 1);

要删除:

$.removeCookie("test");

此外,要在cookie上设置特定天数(此处为5)的超时:

$.cookie("test", 1, { expires : 5 });

如果省略expires选项,则cookie将成为会话cookie,并在浏览器退出时被删除。

涵盖所有选项:

$.cookie("test", 1, {
   expires : 10,           //expires in 10 days

   path    : '/',          //The value of the path attribute of the cookie 
                       //(default: path of page that created the cookie).

   domain  : 'jquery.com',  //The value of the domain attribute of the cookie
                       //(default: domain of page that created the cookie).

   secure  : true          //If set to true the secure attribute of the cookie
                       //will be set and the cookie transmission will
                       //require a secure protocol (defaults to false).
});

要回读cookie的值:

var cookieValue = $.cookie("test");

如果cookie是在与当前路径不同的路径上创建的,您可能希望指定路径参数:

var cookieValue = $.cookie("test", { path: '/foo' });

答案 2 :(得分:3)

以下是您要尝试实现的示例。看看它是否适合你

<body>
        <script>
            $(document).ready(function(){
                $("#btn").click(function(){
                    var text1 = $('#text1').val();
                    var text2 = $('#text2').val();
                    $.cookie('text1', text1);
                    $.cookie('text2', text2);
                });
                checkCookieValues();
            });
            function checkCookieValues(){
                if ($.cookie('text1')!=="undefined") {
                    $('#text1').val($.cookie('text1'));
                }
                if ($.cookie('text2')!=="undefined") {
                    $('#text2').val($.cookie('text2'));
                }
            }
        </script>
        <form name="trial" id="trial">
            <input type="text" value="" id="text1" name="text1"/>
            <input type="text" value="" id="text2" name="text2"/>
            <input type="button" value="btn" id="btn"/>
        </form>
    </body>

注意:Jquery cookie插件需要通过jquery使用cookie

答案 3 :(得分:0)

设置一个Cookie

$.cookie("cookie_name", "cookie_value");

获取 Cookie

alert( $.cookie("cookie_name") );

删除 Cookie

$.removeCookie("cookie_name");