Form的Name数组的一个解决思路

提问 未结
0 494
颠三倒四
悬赏:20飞吻
只是一个简单的思路,就是用一个专门的隐藏的Input,例如name=ActionList,把全部选择的Checkbox的值存进ActionList,每次选择Checkbox就实时更新这个值,最后提交ActionList就行了
<div class="panel-body action">
<input lay-filter="action" type="checkbox" value="Show" title="显示 (Show)" checked>
<input lay-filter="action" type="checkbox" value="Add" title="添加 (Add)" checked>
<input lay-filter="action" type="checkbox" value="Edit" title="修改 (Edit)" checked>
<input lay-filter="action" type="checkbox" value="Del" title="删除 (Del)" checked>
<input lay-filter="action" type="checkbox" value="Search" title="搜索 (Search)" checked>
<input lay-filter="action" type="checkbox" value="View" title="查看 (View)" checked>
<input lay-filter="action" type="checkbox" value="Audit" title="审核 (Audit)">
<input lay-filter="action" type="checkbox" value="Reply" title="回复 (Reply)">
<input lay-filter="action" type="checkbox" value="Build" title="生成 (Build)">
<input lay-filter="action" type="checkbox" value="Install" title="安装 (Install)">
<input lay-filter="action" type="checkbox" value="Unload" title="卸载 (Unload)">
</div>
<input name="ActionList" id="ActionList" type="hidden" value="Show,Add,Edit,Del,Search,View,">
form.on('checkbox(action)', function(data){
if (data.elem.checked==true){
$(".action input:checkbox[value='"+data.value+"']").attr('checked',true);
}else{
$("input:checkbox[value='"+data.value+"']").attr('checked',false);
}
var ActionList="";
$('.action input').each(function() {
if ($(this).attr('checked') =="checked") {
ActionList+=$(this).val()+',';
}
});
$("#ActionList").val(ActionList);
});
只是我好像发现,官方的checkbox,在checked和不checked的时候,我查看代码,发现
<input lay-filter="action" type="checkbox" checked="">这里面的checked="",一直都在,不知道是我的问题,还是怎么样,奇怪,所以我才会加入这几行代码
if (data.elem.checked==true){
$("input:checkbox[value='"+data.value+"']").attr('checked',true);
}else{
$("input:checkbox[value='"+data.value+"']").attr('checked',false);
}
回帖
  • 消灭零回复