关于checkbox的一些心得

用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延迟执行赋值函数可以解决。

原文地址:https://www.cnblogs.com/tingfengqieyu/p/5076586.html