在做一个模块中遇到一些问题,其中有个将所有遍历的带有复选框的数据每次保存,都要把全部状态(选中和未选中)都保存下来。
思考之后决定用jquery来获取复选框的值,把选中的和未选中的分别添加到两个数组中,再根据不同数组给其中的对象赋值。下面上代码
页面代码:
<form class="form-horizontal" action="/province/update">
<table class="table table-striped table-bordered table-hover dataTables-example ">
<thead>
<tr>
<th colspan="5">省份</th>
</tr>
</thead>
<tbody>
<tr>
<#list list?sort as item>
<td style="width: 20%">
<label>
<input type="checkbox" onchange="setValue();"
<#if item.status==1> checked="checked"</#if>
name="iname" value="${item.code}"/>
${item.name}
</label>
</td>
</#list>
</tr>
</tbody>
</table>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">保存</button>
</div>
<input type="hidden" name="nameCheckValue" id="nameCheckValue" />
<input type="hidden" name="nameNotCheckValue" id="nameNotCheckValue" />
</form>
js代码:
<script>
setValue();//窗体初始化时加载一次
function setValue(){
var checkValue = new Array();
var checkNotValue = new Array();
$.each($('input:checkbox'),function(){
if(this.checked){
checkValue.push($(this).val());
}
else
{
checkNotValue.push($(this).val());
}
});
$("#nameCheckValue").val(checkValue.join(","));
$("#nameNotCheckValue").val(checkNotValue.join(","));
}
</script>
后台用了mybatis-plus 把对象及设置复选框的input的值当做参数,在对其进行字符串分割,遍历调用方法 完成保存。
(菜鸟一枚,望各路大神批评指正,谢谢~)