0

有点 jQuery 菜鸟,但感谢 StackOverflow 快速学习。

谁能给我代码,从表单中获取数据并使用 jQuery 将其写入 cookie(不是会话 cookie)。我正在从这里加载 jQuery cookie 插件:

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

我还想知道当DOM准备好时是否必须加载我的代码,就像以前使用php一样,我首先加载了cookie。我还无法理解 DOM。

提前致谢。

好的,这是当前代码,感谢下面的回复。虽然我无法让 cookie 工作,但未注释时警报工作正常:

           <form id="myform">
              <fieldset>
                <h3>Search</h3>
                <p>
                  <label>Your search *</label>
                  <input type="text" id="mysearch" pattern="[a-zA-Z ]{5,}" maxlength="30" />
                </p>
                <fieldset>
                    <input type="range" id="range" min="1" max="30" value="10"  />
                    <input type="range" id="range2" min="30" max="9000" value="2000"  />
                 </fieldset>

                <button id="subbtn" type="submit">Submit form</button>
                <button type="reset">Reset</button>
              </fieldset>
            </form>


        $(function() {
        // initialize tooltip
        $(".imgwrap").tooltip({ 
        //$(".tooltip").tooltip({ effect: 'slide'});
           // tweak the position
           offset: [10, 2],

           // use the "slide" effect
           effect: 'slide'

        // add dynamic plugin with optional configuration for bottom edge
        }).dynamic({ bottom: { direction: 'down', bounce: true } });
        });

        //this one loads the form validator
        $("#myform").validator();

        //this one for the slider
        $(":range").rangeinput();

    $("#subbtn").on("click", function () {
    // alert("Cookie!");
        $.cookie('Searchitem', $("#mysearch").val(), { expires: 365 });
    });

任何想法为什么我的 cookie 没有设置?浏览器设置为接受,我正在使用 Firebug 进行调试。

4

2 回答 2

1

持久 cookie 与会话 cookie 相同,只是它有一个过期日期,所以它会一直存在。

这会将文本输入的值写入 365 天后过期的 cookie:

    <input id="txt" type="text" value="foo" />
    <input id="btn" type="button" value="write cookie" />

...

    $(document).ready(function () {
        $("#btn").on("click", function () {
            $.cookie('myCookie', $("#txt").val(), { expires: 365 });
        });
    });

编辑

每个更新问题的新代码:

    $(function () {

        // initialize tooltip
        $(".imgwrap").tooltip({
            //$(".tooltip").tooltip({ effect: 'slide'});
            // tweak the position
            offset: [10, 2],

            // use the "slide" effect
            effect: 'slide'

            // add dynamic plugin with optional configuration for bottom edge
        }).dynamic({ bottom: { direction: 'down', bounce: true} });

        //this one loads the form validator
        $("#myform").validator();

        //this one for the slider
        $(":range").rangeinput();

        $("#subbtn").on("click", function () {
            // alert("Cookie!");
            $.cookie('Searchitem', $("#mysearch").val(), { expires: 365 });
        });

    });
于 2012-11-02T20:17:04.200 回答
0

我从您的标记中假设您想使用 GET 提交表单。您可以使用此处描述的方法来提取 URL 字符串值。

然后只需将值设置为cookie:

$.cookie('mycookie', getParameterByName('varname'), {expires: 100});

您可以像这样检查 cookie 的值:

console.log($.cookie('mycookie'));
于 2012-11-02T20:16:03.200 回答