本代码使用情况:
二次录入与一次录入的数据进行实时比对。——controller向前台传model,而model中附带了多个list
1.model.addAttribute("currencyModelJson", JSON.toJSONString(currencyModel)); // 用于回写----注意:向前台传时需把带list的数据转为json格式
2.前台接收传来的json进行解析
3.赋值到页面
页面形式如:<input type="radio" name="fsjhBaseInfo.nation" value="1" checkVal="${currencyModel.fsjhBaseInfo.nation!}" >
操作结束后形式:<input type="radio" name="fsjhBaseInfo.nation" value="1" checkval="" oldval="true">
<#include "record.html"> <script> $(function(){ var currencyModelJson = ${currencyModelJson}; /* console.log(currencyModelJson) copyAttrValue(currencyModelJson.fsjhBaseInfoList,"fsjhBaseInfo"); copyAttrValue(currencyModelJson.fsjhBaseIllNexusList,"fsjhBaseIllNexus"); */ //var size=count(currencyModelJson); //循环赋值 for(var key in currencyModelJson){ if($.isArray(currencyModelJson[key])){ copyAttrValue(currencyModelJson[key],key.substring(0,key.length-4)); } } }) function count(o){ var t = typeof o; if(t == 'string'){ return o.length; }else if(t == 'object'){ var n = 0; for(var i in o){ n++; } return n; } return false; } //用于将list的对象赋值,旧值和新值 //obj 为对象列表,namePrefix:html name前缀 function copyAttrValue(obj,namePrefix){ if(obj!=null && obj.length>0){//对象列表有值 //输入域为text 类型 $("input[type='text']").each(function(){ var $this = $(this); var name=$this.attr("name"); if(name != null && name != ""){ //判断name是否存在 if(name.split(".")[0]== namePrefix){//如果name与当前传入的列表对象匹配,取值给input赋值即可 var realName=name.split(".")[1];//根据当前输入框的name取对象里面的字段命名 $this.attr("oldVal",obj[0][realName]);//增加旧值属性 if(obj.length>1){//给value赋值 $this.val(obj[1][realName]); } } } }) //输入域为hidden 类型 $("input[type='hidden']").each(function(){ var $this = $(this); var name=$this.attr("name"); if(name != null && name != ""){ //判断name是否存在 if(name.split(".")[0]== namePrefix){//如果name与当前传入的列表对象匹配,取值给input赋值即可 var realName=name.split(".")[1];//根据当前输入框的name取对象里面的字段命名 if(realName!="isUse"){ $this.attr("oldVal",obj[0][realName]);//增加旧值属性 if(obj.length>1){//给value赋值 $this.val(obj[1][realName]); } } } } }) //输入域为radio 类型 $("input[type='radio']").each(function(){ var $this = $(this); var name=$this.attr("name"); if(name != null && name != ""){ //判断name是否存在 if(name.split(".")[0]== namePrefix){//如果name与当前传入的列表对象匹配,取值给input赋值即可 var realName=name.split(".")[1];//根据当前输入框的name取对象里面的字段命名 if(obj[0][realName]==$(this).val()){ $this.attr("oldVal",true);//增加旧值属性 }else{ $this.attr("oldVal",false);//增加旧值属性 } if(obj.length>1){//给value赋值 $("input[name='"+name+"'][value='"+obj[1][realName]+"']").attr("checked",true); //根据Value值设置Radio为选中状态 } } } }) //输入域为checkbox 类型 $("input[type='checkbox']").each(function(){ var $this = $(this); var name=$this.attr("name"); if(name != null && name != ""){ //判断name是否存在 if(name.split(".")[0]== namePrefix){//如果name与当前传入的列表对象匹配,取值给input赋值即可 var realName=name.split(".")[1];//根据当前输入框的name取对象里面的字段命名 $this.attr("oldVal",obj[0][realName]);//增加旧值属性 if(obj.length>1){//给value赋值 $("input[name='"+name+"'][value='"+obj[1][realName]+"']").attr("checked",true); //根据Value值设置checkbox为选中状态 } } } }) //输入域为select 类型 $("select").each(function(i){ var $this = $(this); var name=$this.attr("name"); if(name != null && name != ""){ //判断name是否存在 if(name.split(".")[0]== namePrefix){//如果name与当前传入的列表对象匹配,取值给input赋值即可 var realName=name.split(".")[1];//根据当前输入框的name取对象里面的字段命名 $this.attr("oldVal",obj[0][realName]);//增加旧值属性 if(obj.length>1){//给value赋值 $this.val(obj[1][realName]); } } } }) } } </script> <script type="text/javascript" src="/js/BJXH01/two_entry.js"></script>