亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery擴展方法實現Form表單與Json互相轉換的實例代碼

2019-11-19 13:01:51
字體:
來源:轉載
供稿:網友

JQuery筆記

記兩段代碼,使用JQuery實現從表單獲取json與后端交互,以及把后端返回的json映射到表單相應的字段上。

把表單轉換出json對象

//把表單轉換出json對象  $.fn.toJson = function () {    var self = this,      json = {},      push_counters = {},      patterns = {        "validate": /^[a-zA-Z][a-zA-Z0-9_]*(?:/[(?:/d*|[a-zA-Z0-9_]+)/])*$/,        "key": /[a-zA-Z0-9_]+|(?=/[/])/g,        "push": /^$/,        "fixed": /^/d+$/,        "named": /^[a-zA-Z0-9_]+$/      };    this.build = function (base, key, value) {      base[key] = value;      return base;    };    this.push_counter = function (key) {      if (push_counters[key] === undefined) {        push_counters[key] = 0;      }      return push_counters[key]++;    };    $.each($(this).serializeArray(), function () {      // skip invalid keys      if (!patterns.validate.test(this.name)) {        return;      }      var k,        keys = this.name.match(patterns.key),        merge = this.value,        reverse_key = this.name;      while ((k = keys.pop()) !== undefined) {        // adjust reverse_key        reverse_key = reverse_key.replace(new RegExp("http://[" + k + "http://]$"), '');        // push        if (k.match(patterns.push)) {          merge = self.build([], self.push_counter(reverse_key), merge);        }        // fixed        else if (k.match(patterns.fixed)) {          merge = self.build([], k, merge);        }        // named        else if (k.match(patterns.named)) {          merge = self.build({}, k, merge);        }      }      json = $.extend(true, json, merge);    });    return json;  };

將josn對象賦值給form,使表單控件也顯示相應的狀態

//將josn對象賦值給form  $.fn.loadData = function (obj) {    var key, value, tagName, type, arr;    this.reset();    for (var x in obj) {      if (obj.hasOwnProperty(x)) {        key = x;        value = obj[x];        this.find("[name='" + key + "'],[name='" + key + "[]']").each(function () {          tagName = $(this)[0].tagName.toUpperCase();          type = $(this).attr('type');          if (tagName == 'INPUT') {            if (type == 'radio') {              if ($(this).val() == value) {                  $(this).attr('checked', true);              }            } else if (type == 'checkbox') {              arr = value.split(',');              for (var i = 0; i < arr.length; i++) {                if ($(this).val() == arr[i]) {                    $(this).attr('checked', true);                  break;                }              }            } else {              $(this).val(value);            }          } else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {            $(this).val(value);          }        });      }    }  }

補充:下面看下jQuery兩種擴展方法

在jQuery中,有兩種擴展方法

1.類方法($.extend())

<script>    $.extend({    print1:function(name){      //print1是自己定義的函數名字,括號中的name是參數      console.log(name)    }  });   $.print1("坤") ;              //調用時直接$.函數名(參數);</script>   

2.對象方法($.fn.extend())

<body>  <input type="text">  <script>      $.fn.extend({      getMax:function(a,b){        var result=a>b?a:b;        console.log(result);      }    });    $("input").getMax(1,2);    //調用時要$(標簽名).函數名();  </script></body>

3.一般情況下,jQuery的擴展方法寫在自執行匿名函數中(原因:在js中是以函數為作用域的,在函數中寫可以避免自己定義的函數或者變量與外部沖突)

<script>  (function(){    $.extent({      print1:function(){      console.log(123);      }    })  })();</script> 

總結

以上所述是小編給大家介紹的jQuery擴展方法實現Form表單與Json互相轉換的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合男人天堂| 国产欧美日韩高清| 国产精品久久久久久久久粉嫩av| 亚洲最大福利网站| 中文字幕久久亚洲| 国产日韩欧美黄色| 精品国产福利在线| 国产婷婷97碰碰久久人人蜜臀| 中日韩美女免费视频网址在线观看| 国产伦精品免费视频| 亚洲人午夜精品| 亚洲天堂开心观看| 亚洲人午夜精品免费| 亚洲最大的av网站| 亚洲天堂网站在线观看视频| 亚洲国内高清视频| 九九热精品视频在线播放| 久久电影一区二区| 疯狂做受xxxx欧美肥白少妇| 成人黄色大片在线免费观看| 在线看欧美日韩| 精品久久久国产精品999| 精品久久久久久久久久久| 国产一区二区在线播放| 久久成年人免费电影| 国产精品亚洲一区二区三区| 色中色综合影院手机版在线观看| 精品亚洲va在线va天堂资源站| 日韩欧美在线视频日韩欧美在线视频| 欧美激情第1页| 91网站免费观看| 精品在线观看国产| 欧美福利在线观看| 国产精品久久久久久av下载红粉| 欧美国产日韩视频| 国产综合久久久久久| 久久影院免费观看| 91美女福利视频高清| 国产在线日韩在线| 亚洲毛片在线看| 91欧美精品成人综合在线观看| 久久久久久国产精品| 欧美大荫蒂xxx| 午夜精品久久久久久99热| 海角国产乱辈乱精品视频| 中文字幕在线观看亚洲| 日韩免费中文字幕| 国产精品精品国产| 欧美日韩ab片| 亚洲色图17p| 国产成人一区三区| 国产精品高清免费在线观看| 亚洲嫩模很污视频| 欧美中文在线观看国产| 欧美老女人www| 青青草成人在线| 国内精久久久久久久久久人| 欧美成人精品xxx| 久久久亚洲成人| 欧美极品少妇与黑人| 久久国产一区二区三区| 国产欧美日韩中文字幕| 国产精品高潮呻吟久久av无限| 亚洲另类xxxx| 欧美精品九九久久| 成人黄色生活片| 久久精品影视伊人网| 青青草国产精品一区二区| 国产精品久久久久久久久久新婚| 亚洲另类激情图| 亚洲伊人第一页| 欧美理论在线观看| 国产精品2018| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产一区红桃视频| 国产成人精品视频| 国产婷婷成人久久av免费高清| 国产91亚洲精品| 国产经典一区二区| 欧美中文字幕第一页| 久久亚洲国产精品| 中文日韩电影网站| 久久久中文字幕| 超碰精品一区二区三区乱码| 欧美电影《睫毛膏》| 久久激情视频免费观看| 美女黄色丝袜一区| 日韩欧美在线视频观看| 日韩av免费看网站| 91丝袜美腿美女视频网站| 色噜噜国产精品视频一区二区| 九九热最新视频//这里只有精品| 亚洲va国产va天堂va久久| 中文字幕一区二区三区电影| 国产精品va在线播放我和闺蜜| 国产欧美日韩亚洲精品| 精品毛片三在线观看| 亚洲性av网站| 91国产视频在线播放| 精品成人久久av| 色樱桃影院亚洲精品影院| 亚洲欧美国产另类| 国产精品国语对白| 亚洲欧美在线x视频| 日韩欧美国产高清91| 欧美有码在线视频| 精品国产老师黑色丝袜高跟鞋| 亚洲影院色无极综合| 日韩在线中文视频| 亚洲高清av在线| 欧美性猛xxx| 国产精品igao视频| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品视频一区二区三区四| 久久精品影视伊人网| 日韩电影网在线| 久久人人爽亚洲精品天堂| 精品一区二区电影| 欧美一级大片在线免费观看| 亚洲91精品在线观看| 国产精品极品尤物在线观看| 欧美精品18videos性欧| 国产91在线播放九色快色| 国产免费一区二区三区在线能观看| 亚洲九九九在线观看| 国产日韩中文字幕在线| 在线午夜精品自拍| 欧美电影《睫毛膏》| 国产成一区二区| 久久久免费观看| 91手机视频在线观看| 久国内精品在线| 亚洲欧美中文日韩在线v日本| 欧美日韩另类视频| 欧美成人精品一区| 国产亚洲美女久久| 91国内在线视频| 一区二区三区视频免费| 久久91精品国产91久久跳| 亚洲国产中文字幕在线观看| 国产91亚洲精品| 一区二区在线视频| 国自产精品手机在线观看视频| 欧美电影在线免费观看网站| 性欧美在线看片a免费观看| 欧美专区第一页| 538国产精品一区二区在线| 亚洲欧美日韩国产精品| 亚洲老板91色精品久久| 国产精品欧美激情在线播放| 456亚洲影院| 中文日韩在线视频| 欧美激情久久久久久| 国产啪精品视频网站| 亚洲国产一区二区三区在线观看| 欧美电影免费观看电视剧大全| 7777kkkk成人观看| 欧美激情免费视频| 久久网福利资源网站| 一区二区三区回区在观看免费视频| 亚洲精品电影在线观看| 影音先锋欧美精品| 久久久久久成人精品| 欧美激情成人在线视频|