说说最近在使用layui中遇到的一个坑,checkbox的表单是漂亮,样式也很丰富,可是有个问题,如果像以前一样用同名的checkbox去提交的话,居然只能传送其中一个选中值,不能像这前普通表单一样提交所有同名的被选中的值去组成数组,总不能让我每个checkbox都单独命名一个吧。
2
在网上搜索了半天,都是仅在当前页面获取选中值状态的,没有和我一样的,只能自己写了,代码如下:
html代码
<input type="checkbox" name="prjtrsc" value="改善房" title="改善房" checked>
<input type="checkbox" name="prjtrsc" value="品牌开发商" title="品牌开发商" checked>
<input type="checkbox" name="prjtrsc" value="刚需房" title="刚需房" >
3
提交代码
//监听提交
form.on('submit(add)', function (data) {
var arr_check = []; //定义一个临时数据
$("input:checkbox[name='prjtrsc']:checked").each(function() {
arr_check.push($(this).val()); //获取checkbox name=prjtrsc 的所有选中值
});
data.field.prjtrsc = arr_check.toString(); //替换到原表单中对应的data.field值
//console.log(data.field);
$.ajax({
url: 'xxxxx',
method: 'post',
data: data.field,
dataType: 'JSON',
success: function (res) {
if (res.errStat == 0) {
if(res.errMsg=='xxxx'){
layer.alert("修改成功",{icon:6},function(){
xadmin.close();
xadmin.father_reload();
});
}else{
layer.alert("增加成功", {
icon: 6
}, function () {
location.reload();
});
}
} else {
layer.msg(res.errMsg, {icon: 5});
}
},
error: function (data) {
layer.msg('服务器繁忙', {icon: 5});
}
});
return false;
});