用checkbox多选post过去的数据只有最后一个的值,后来从网上学到要在checkbox的name后要加[]变成数组,例如你的checkbox的name是vote,改成vote[]。
然后试了试,后台果然收到了完整的数组,这是什么。。。黑科技吗?。。
——————————————————————
还有就是通过后台传来的数据用jquery来完成自动选中checkbox的值,这样用户在编辑时可以显示他以前的选项。
arr=str.split(","); if(arr != ""){ $.each(arr,function(i,item){ $("input[name='serves[]'][value="+item+"]").prop("checked",true); }); }
先把收到的类似于1,2,3,4这样的字符串用split函数变成数组,然后循环。checkbox用prop来改变属性。
转载一篇关于attr和prop区别的文章,http://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html
都是百度来的
------------------------------------------更新--------------------
或
function fun(){
var val = data.andInfoCategoryParamIds;
var boxes = document.getElementsByName("serves[]");
for(i=0;i<boxes.length;i++){
for(j=0;j<val.length;j++){
if(boxes[i].value == val[j]){
boxes[i].checked = true;
break
}
}
} }
另外,在checkbox本身也是js动态写入的情况下,用js再给checkbox赋默认值很容易失败,因为checkbox本身还没有被写入。用setTimeout延迟执行赋值函数可以解决。