zoukankan      html  css  js  c++  java
  • ~随笔B023~jquery获取json的大小,并在json中为当前页面循环赋值

    本代码使用情况:

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

      

  • 相关阅读:
    MYSQL mysql.user表中权限对应的解释
    MYSQL LOCK IN SHARE MODE&FOR UPDATE
    什么是索引
    ol,li,ul,dl,dt,dd
    CSS类与选择器【转】http://www.cnblogs.com/duanhuajian/archive/2012/12/17/2821524.html
    bootstrap笔记
    iPhone应用程序开发基础之一: IBOutlet与IBAction
    Objective-C中的加号与减号
    Linux下*.tar.gz文件解压缩命令
    【PHP+MySQL学习笔记】php操作MySQL数据库中语句
  • 原文地址:https://www.cnblogs.com/gaojl/p/9889242.html
Copyright © 2011-2022 走看看