工具函数、正则等

表单序列化为一个对象

2018-04-21  本文已影响0人  Rosa_Lv

有这样一个表单:

<form class="form-horizontal" >
       <label for="agentId" >编号</label> 
       <input type="text" name="agentId" id="agentId" placeholder="请输入编号">
       <label for="phone" >手机号</label>
       <input type="text" class="form-control" name="phone" id="phone" placeholder="请输入手机号">
       <label for="nick" >昵称</label>
       <input type="text" name="nick" id="nick" placeholder="请输入昵称">
</form>

1、通常的方法是:

$('form').serialize()    //agentId=123456&phone=17823457654&nick=rosa

这种方法对于get请求发送参数来说还是很好用的,但如果是post请求这样做就不行了,发送post请求时怎样直接序列化成一个对象呢?只需将下面这个方法放进你的js代码里就可以啦:

$.fn.serializeObject = function () {
   var o = {};
   var a = this.serializeArray();
   $.each(a, function () {
      if (o[this.name]) {
           if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
           }
           o[this.name].push(this.value || "");
           } else {
               o[this.name] = this.value || "";
          }
    });
    return o;
};

调用这个方法:

$('form').serializeObject()   //{agentId:"123456",phone:"17823457654",nick:"rosa"}

得到的是一个对象。

上一篇下一篇

猜你喜欢

热点阅读