事实是struts不会处理未经检查的复选框。我遇到了问题。bean类型为InfoForm
,recommend
字段与复选框相关联。在控制器A
中,将recommend
字段设置为值1,表示在加载页面时应选中该复选框。加载页面后,我单击复选框并将复选框设置为取消选中。接下来,我将表单提交给Controller中的方法。但是recommend
字段值将为1,因为struts选中了复选框未选中状态,然后对它执行任何操作,recommend
字段价值又传回了后端。我该如何应对呢?
答案 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
<input type="checkbox" class="ckbox"/>
<input type="hidden" name="infoBeanForm.clientType" value="${infoBeanForm.clientType[1]!0}"/>
ios