如何在cookie中具有相同ID的其他复选框中仅保存勾选的复选框

时间:2014-03-28 08:31:45

标签: javascript jquery cookies checkbox displaytag

我正在使用struts2框架创建在线测试应用程序。我在jsp中使用displaytag来迭代问题和答案列表。这是代码。

 <form method="get">

<display:table name="${sessionScope.questionList}" id="quest" pagesize="1"    

       requestURI="display.jsp">
           <display:column title="Stuff">
            <c:out value="${quest.quesId}"/><br/>
            <c:out value=" ${quest.question}"/><br/>   

    <input type="checkbox" name="ans1" value="${quest.option1}" id="ans1" />  <c:out value="${quest.option1}"/><br/>
    <input type="checkbox" name="ans2" value="${quest.option2}" id="ans2"/> <c:out value="${quest.option2}"/><br/>
    <input type="checkbox" name="ans3" value="${quest.option3}" id="ans3"/> <c:out value="${quest.option3}"/><br/>
    <input type="checkbox" name="ans4" value="${quest.option4}" id="ans4"/> <c:out value="${quest.option4}"/><br/>
        </display:column>
</display:table>
</form>

现在每当用户选择一个复选框选项时,它必须存储在cookie中,这样当用户返回到该页面时,该复选框不应该被取消选中。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

这段代码不在我的脑海中且未经测试。请阅读文档(或Google文档)以获取正确的详细信息。它基于jQuery和jQuery cookie plugin

首先,单击时读取复选框的值并将其存储在cookie中:

$("input[type=checkbox]").on("click", function (event) {
  var id = $(this).attr("id"),
    currentlySavedIds = $.cookie('saved_ids');
  currentlySavedIds.push(id);
  $.cookie('saved_ids', currentlySavedIds);
}

然后,当页面加载时:

$(document).ready(function () {
  var ids = $.cookie('saved_ids');
  $.each(ids, function (index, id) {
    $("#" + id).prop("checked", true);
  }
}