重新加载时保留复选框值不起作用

时间:2014-01-20 10:29:53

标签: jquery html

我想保留复选框的选中值。我有以下代码。但它没有用。任何人都可以纠正吗?我有提交按钮,重新加载页面onClick。

<!DOCTYPE HTML>
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script src="../js/cookie.jquery.js"></script>
  <script>
    $(document).ready(function(){
        $("input.box").each(function() {
            var mycookie = $.cookie($(this).attr('name'));
            if (mycookie && mycookie === "true") {
                $(this).prop('checked', mycookie);
            }
        });

        $("input.box").change(function() {
            $.cookie($(this).attr("name"), $(this).prop('checked'), {
            path: '/',
            expires: 365
            });
        });
    });
 </script>
</head>

<body>
    <input class="box" type="checkbox" name="1" value = " One ">    One<br/>
    <input class="box" type="checkbox" name="2" value = " Two ">    Two<br/>
    <input class="box" type="checkbox" name="3" value = " Three "> Three<br/>
    <input class="box" type="checkbox" name="4" value = " Four "> Four<br/>
    <input class="box" type="checkbox" name="5" value = " Five "> Five  <br/>
    <input class="box" type="checkbox" name="6" value = " Six "> Six<br/>
    <input type="Submit" value = " Submit " onClick = " javascript:window.location.reload(); ">
</body>
</html>

在控制台中获取以下内容

    GET localhost:8080/js/… 404 (/solarether/js/cookie.jquery.js) Remember.jsp:6 
    Uncaught TypeError: Object function (e,t){return new x.fn.init(e,t,r)} has no method 'cookie'

2 个答案:

答案 0 :(得分:0)

该脚本在本地系统中运行良好。您可能遇到的问题是由于以下原因:

  1. 您正在客户端运行此代码。
  2. 您正在运行的服务器阻止jquery.cookie.js,这是最近的行为。
  3. 解决方案:

    1. 在服务器中运行它。这种情况下的某些服务器,因为URL应以http://开头。
    2. jquery.cookie.js重命名为其他名称,并将其包含在本地!

答案 1 :(得分:0)

你的问题是:

if (mycookie && mycookie === "true") {
    $(this).prop('checked', mycookie);
}

如果您更改它以便显示$(this).prop('checked', true),它应该可以正常工作。您将mycookie与字符串匹配,但prop()函数需要布尔值。