layui页面
因为页面中的数据使用layui的form模块获取值,formData对象无法直接将多选框的值加入请求头,所以先将获取的多选按钮的值转为数组,然后使用
formData.classId=arr_box;方法,将数组追加到formData中,后台获取值。
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
Title通知标题
发布日期
班级名称
提交
取消
layui.use(['form','laydate'], function(){
var form = layui.form
,laydate = layui.laydate
//复选框渲染
form.render('checkbox');
//时间控件
laydate.render({
elem: '#createTime',
type:'date'
})
//修改通知消息
form.on('submit(updateAtt)',function (data) {
var formData = data.field;
//将多选框拼接为数组
var arr_box = [];
$('input[type=checkbox]:checked').each(function() {
arr_box.push($(this).val());
});
formData.classId=arr_box;
console.log(formData);
$.ajax({
'url':'${pageContext.request.contextPath}/notice/updateNotice',
'type':'post',
'dataType':'json',
'traditional': true,//ajax传递数组必须添加属性
'data':formData,
'success':function (data) {
alert(data.msg);
if(data.code==0){
var index = parent.layer.getFrameIndex(window.name);
parent.layui.table.reload('demo');
parent.layer.close(index);
}
},
'error':function () {
alert("服务器忙。。。");
}
})
})
});
//取消
function cancelExam() {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
后台获取值:
@RequestMapping("updateNotice")
public boolean updateNotice(NoticeInfo noticeInfo,Integer[] classId){
return false;
}
NoticeInfo为对象,因为表单中的其他值为对象中的属性,顾框架会将其他属性封装成对象接受,classId数组将接受前台的数组。
转载请标明地址谢谢!