Javascript 如何在Struts2中获取未选中的特定复选框

Javascript 如何在Struts2中获取未选中的特定复选框,javascript,jquery,checkbox,jqgrid,struts2,Javascript,Jquery,Checkbox,Jqgrid,Struts2,在我的应用程序中,我在某些特定操作上打印一些文档以及一些复选框(页面加载时默认选中一些复选框) 现在,用户将选中一些复选框或取消选中一些复选框。然后点击更新按钮 现在我的要求是,我希望复选框中的值未选中。 例如: 首次加载页面时,有5个复选框被选中 大约700个复选框中的默认值 现在用户将取消选中2个复选框并单击提交 我的要求在这里我想要那两个 未选中复选框“我的操作”类中的值 我正在使用Struts2打印这些文档。我使用的是Struts2 jQgrid,我尝试了Struts2 Checkbox

在我的应用程序中,我在某些特定操作上打印一些文档以及一些复选框(页面加载时默认选中一些复选框)

现在,用户将选中一些复选框或取消选中一些复选框。然后点击更新按钮

现在我的要求是,我希望复选框中的值未选中。

例如:

首次加载页面时,有5个复选框被选中 大约700个复选框中的默认值

现在用户将取消选中2个复选框并单击提交

我的要求在这里我想要那两个 未选中复选框“我的操作”类中的值


我正在使用Struts2打印这些文档。我使用的是Struts2 jQgrid,我尝试了Struts2 CheckboxInterceptor来获取未选中的复选框,但它提供了所有未选中的复选框,而不仅仅是所需的复选框(更改其状态的复选框)。

假设您从迭代自定义对象列表开始

private List<MyCustomObject> myList;
然后在页面中,您应该使用经典复选框获取选中项,使用隐藏输入存储未选中项的值,并使用javascript激活其值,与复选框值相反(必须没有名称):


/*选中复选框时启用隐藏字段,
选中复选框时禁用隐藏字段*/
$(函数(){
$(“输入[type='checkbox'].startedChecked”).change(函数(){
$(#hidden#+this.id).prop({disabled:this.checked});
});
});

这样,您将只获得两个列表中所需的值。

您将如何继续?有什么想法吗?传统的方式。。在第一页加载之前。我将把以前检查过的文档保存在一个列表中,并在会话中保存该列表。。当用户更新(取消选中或选中)时,我将比较它们并进行更改。。没有比这更好的主意了。这需要很长时间。嗨,谢谢你的回复。我没有使用
Itreator
我使用的是
Struts2 jquerygrid
是否可以通过隐藏字段技巧获得它们,我不这么认为。只要处于默认用例中,就可以对其进行自定义。这是一些定制需求,可能应该以不同的方式处理。将此作为最后的希望:如果没有其他人回答,那么在从该页面删除网格后,此解决方案将起作用。
private List<String> itemsThatHaveBeenChecked;
private List<String> itemsThatHaveBeenUnchecked;
<s:iterator value="myList" status="ctr">
    <s:if test="!isChecked()">
        <!-- I'm not checked, need to catch only if I will be checked -->
        <s:checkbox id = "checkbox_%{#ctr.index}" 
            fieldValue = "%{getValue()}"
                 value = "false" 
                  name = "itemsThatHaveBeenChecked" />
    </s:if>
    <s:else>
        <!-- I'm checked, need to catch only if I will be unchecked -->
        <input type = "checkbox" 
                 id = "<s:property value="%{'checkbox_'+#ctr.index}"/>"
            checked = "checked"
              class = "startedChecked" />
        <!-- hidden trick -->
        <input type = "hidden" 
                 id = "hidden_<s:property value="%{'checkbox_'+#ctr.index}"/>" 
              value = "<s:property value="%{getValue()}"/>"         
               name = "itemsThatHaveBeenUnchecked" 
           disabled = "disabled" />            
    </s:else> 
</s:iterator>

<script>
    /* Enable the hidden field when checkbox is unchecked, 
      Disable the hidden field when checkbox is checked    */
    $(function() {
        $("input[type='checkbox'].startedChecked").change(function () {
            $("#hidden_"+this.id).prop({disabled : this.checked});
        });
    });
</script>