美文网首页工具函数、正则等
表单序列化为一个对象

表单序列化为一个对象

作者: Rosa_Lv | 来源:发表于2018-04-21 15:33 被阅读0次

有这样一个表单:

<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"}

得到的是一个对象。

相关文章

网友评论

    本文标题:表单序列化为一个对象

    本文链接:https://www.haomeiwen.com/subject/wlyxlftx.html