处理struts未选中复选框

时间:2016-11-04 12:52:42

标签: forms model-view-controller checkbox struts2

事实是struts不会处理未经检查的复选框。我遇到了问题。bean类型为InfoFormrecommend字段与复选​​框相关联。在控制器A中,将recommend字段设置为值1,表示在加载页面时应选中该复选框。加载页面后,我单击复选框并将复选框设置为取消选中。接下来,我将表单提交给Controller中的方法。但是recommend字段值将为1,因为struts选中了复选框未选中状态,然后对它执行任何操作,recommend字段价值又传回了后端。我该如何应对呢?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

<script>
$(function () {
$('.ckbox').each(function () {
    var next = $(this).next('input[type="hidden"]');
    if (next.val() == 1)
        this.checked = true;
    else
        this.checked = false;
})
$(".ckbox").bind('change', function () {
    var next = $(this).next('input[type="hidden"]');
    if (this.checked == true)
        next.val(1);
    else
        next.val(0);

})
});
</script>


<input type="checkbox" class="ckbox"/>recommend
<input type="hidden" name="infoBeanForm.recommend" value="${(infoBeanForm.recommend)!0}"/>

<input type="checkbox" class="ckbox"/>
<input type="hidden" name="infoBeanForm.clientType" value="${infoBeanForm.clientType[0]!0}"/>
android
&nbsp;&nbsp;&nbsp;
<input type="checkbox" class="ckbox"/>
<input type="hidden" name="infoBeanForm.clientType" value="${infoBeanForm.clientType[1]!0}"/>
ios