<script type="text/javascript">
baseBaseLineFormSubmit=function(data){
var startDate=$('#formSdate').datebox('getValue');
var endDate=$('#formEdate').datebox('getValue');
var json="[";
<c:forEach items="${items}" var="list">
var indexNo=$('#${list.id}indexNo').val();
var requireItem=$('#${list.id}requireItem').val();
var isPass=$('#${list.id}isPass').val();
var remark=$('#${list.id}remark').val();
var checkindexId=$('#${list.id}').val();
$('#savaBaselineAction').form('submit',{
url:'savaBaseline.action?checkIndex.id='+checkindexId+'&baselineDetail.isPass='+isPass+'&baselineDetail.remark='+enco deURI(encodeURI(remark))
});
</c:forEach>
$.messager.alert('提示', '保存成功');
</script>
如果数据量不大可以这样直接提交,如果数据一旦超过几十条那么会造成页面卡顿,同时ie会提示“此脚本运行时间过长,是否终止”,一旦点击是,那么表单就无法直接提交了;
对于有较多行的数据,可以将其拼凑成json 然后 提交,效率会大大的提高
注意在拼凑json的时候要注意符号的转义
<script type="text/javascript">
baseBaseLineFormSubmit=f<c:forEach items="${list}" var="lists">
var indexNo=$('#${lists.index.id}indexNo').val();
var requireItem=$('#${lists.index.id}requireItem').val();
var isPass=$('#${lists.index.id}isPass').val();
var remark=$('#${lists.index.id}remark').val();
var checkindexId=$('#${lists.index.id}').val();
json+="{"+"\"indexNo\":"+"\""+indexNo+"\","+"\"id\":"+"\""+checkindexId+"\","+"\"remark\":"+"\""+remark+"\"},"
</c:forEach>
json+="]"
var params="BaseLineSaveJSON="+encodeURIComponent(json);
$.ajax({
url:'savaBaseline.action?sercurityBaseline.startDate='+startDate+'&sercurityBaseline.endDate='+endDate+'&operateMethod='+data,
type:'post',
data:params,
success: function(result){
var rArr = result.split(";");
if (rArr[0]=="false"){
$.messager.show({
title: '错误提示:',msg: rArr[1]
});
$('#baselinedlg').dialog('close');
$('#BaselineListTab').datagrid('load');
} else {
$.messager.alert('系统提示','保存成功!');
$('#baselinedlg').dialog('close');
$('#BaselineListTab').datagrid('load');
}
}
});
$.messager.alert('提示', '保存成功');
</script>
记得要用post方式因为get会限制你提交的数据的大小;为了防止json中有各种特殊字符 建议对json进行编码
encodeURIComponent(json);
解决中文乱码 以及特殊字符无法保存 比如% 等
如果最后提示json格式有误的话那么可以去:http://www.bejson.com/go.php?u=http://www.bejson.com/index.php 将json数据放到里面校验一下,就会看到哪里错了
下一步是在后台对json进行处理
首先是duijson格式进行修改去除最后一个元素的逗号;然后将其转换为对应的对象的list ,剩下的就是对list进行遍历处理。
String[] json_before=this.BaseLineSaveJSON.split("},]");
String json=json_before[0]+"}]";
JSONArray baseLineArray = JSONArray.fromObject(json);
List<BaselineDetail> baseLineList = JSONArray.toList(baseLineArray, BaselineDetail.class);