考拉~

导航

 

本代码使用情况:

  二次录入与一次录入的数据进行实时比对。——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>

 

  

posted on 2018-11-01 14:54  考拉~  阅读(175)  评论(1编辑  收藏  举报