由于spring框架传递对象出现问题,无奈之下只能选择比较原始的方法来完成多个复选框的选择问题。
<pre name="code" class="javascript"> //制造指导类型复选框
function testFind(){
$.ajax({
type:'post',
url:'${path}/childBaseInfo/combobox?dictionaryCode=instructionType',//从数据库获取对象数据,来建立复选框
data:{idToFind:'3'},
dataType:'json',
async : false,
success:function(list){
for(var i=0;i<list.length;i++){//通过循环的方式建立复选框
console.log(list[i].dictionaryDataName)
var str = '<td><label><input name="instructioncheckbox" type="checkbox" onclick="testchecked()" value="'+list[i].dictionaryDataCode+'" />'+list[i].dictionaryDataName+' </label></td>'
$("#testtable").append(str);
}
}
})
}
<span style="white-space:pre"> </span>注:这里用ajax的原因的与数据库结合,更改数据库就可以直接改变页面,为后期修改方便而做。
<span style="white-space:pre"> </span><pre name="code" class="javascript"> <span style="white-space:pre"> </span> //获取选中复选框的id
function testchecked(){
var spCodesTemp = "";
$('input[name="instructioncheckbox"]:checked').each(function(i){
if(0==i){
spCodesTemp = $(this).val();
}else{
spCodesTemp += (","+$(this).val());//选中了前两个,输出的就是0,1(这里的数字根据数据库数据形式可能由不同的输出)
}
})
$("#instructionType").val(spCodesTemp)//这里将选中的id放到一个input text中,并设置隐藏,来方便上传数据,当然也有其他的方法。
}
<span style="white-space:pre"> </span>//选中所指定的复选框
function testcheckedbox(){
var str = $('#instructionType').val();
console.log(str);
var strArray = str.split(","); //分解成数组,方便后面进行选中
for(var i=0;i<strArray.length;i++)
{
var ii = strArray[i];
$('input:checkbox').eq(ii).attr('checked', 'true');//选中指定的复选框
}
}
大体流程:从服务器获取复选框数据,用第一步制造复选框。 每次点击复选框触发第二步,获取选中的复选框id。
通过你的方式进行上传之后,
<span style="white-space:pre"> </span> 进入页面,获取上次上传的复选框的id,通过第三部,分解为数组形式,一一进行选中。