麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

jQuery擴(kuò)展方法實(shí)現(xiàn)Form表單與Json互相轉(zhuǎn)換的實(shí)例代碼

2019-11-19 13:01:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

JQuery筆記

記兩段代碼,使用JQuery實(shí)現(xiàn)從表單獲取json與后端交互,以及把后端返回的json映射到表單相應(yīng)的字段上。

把表單轉(zhuǎn)換出json對(duì)象

//把表單轉(zhuǎn)換出json對(duì)象  $.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對(duì)象賦值給form,使表單控件也顯示相應(yīng)的狀態(tài)

//將josn對(duì)象賦值給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);          }        });      }    }  }

補(bǔ)充:下面看下jQuery兩種擴(kuò)展方法

在jQuery中,有兩種擴(kuò)展方法

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

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

2.對(duì)象方法($.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);    //調(diào)用時(shí)要$(標(biāo)簽名).函數(shù)名();  </script></body>

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

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

總結(jié)

以上所述是小編給大家介紹的jQuery擴(kuò)展方法實(shí)現(xiàn)Form表單與Json互相轉(zhuǎn)換的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲五码在线观看视频 | 久久久久久久久久久国产精品 | 成人毛片在线免费观看 | 国产一级做a爱片在线看免 2019天天干夜夜操 | 久久九九热re6这里有精品 | 91精品中文字幕 | 成人在线观看地址 | 国产欧美一区二区三区免费看 | 欧美18—19sex性hd按摩 | 久久国产精品久久久久 | 中文字幕在线观看精品 | 久久毛片免费观看 | 国产亚洲在| 视频一区二区不卡 | 99热久草 | 黄色av.com | 国产午夜精品一区二区三区免费 | 超碰97人 | 成人毛片一区 | 久久精品国产一区二区电影 | 国产91久久久久久 | 免费观看国产精品视频 | 91久久极品少妇韩国 | 国产亚洲精品成人a | 欧美成人午夜一区二区三区 | 国内精品久久久久影院不卡 | 久精品久久 | 九艹在线 | 欧美中文字幕一区二区 | 91短视频在线免费观看 | 少妇的肉体k8经典 | 97zyz成人免费视频 | 操碰视频在线观看 | 久久精品国产清自在天天线 | 日本成人在线免费 | 精品久久久一 | 欧美成人精品 | 久久成人午夜视频 | 看片一区二区三区 | 国产免费观看av | av久草 |