1. 程式人生 > >~隨筆B023~jquery獲取json的大小,並在json中為當前頁面迴圈賦值

~隨筆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>