jQuery序列化表单数据 serialize()、serializeArray(),serializeJson()及使用

<form method="post" action="#" id="test_form">
        用户名:<input type="text" name="username"/><br>
        密 &nbsp; 码:<input type="password" name="password"><br>
        爱 &nbsp; 好:吃饭<input type="checkbox" name="hobby" value="eat" checked/> 睡觉<input type="checkbox" name="hobby" value="sleep"/><br/>
        性 &nbsp; 别:男 <input type="radio" value="man" name="sex" checked/> 女 <input type="radio" value="woman" name="sex"/><br/>
        学 &nbsp; 校: <select name="school">
                    <option value="yangguang">阳光小学</option>
                    <option value="xiwang">希望小学</option>
                    <option value="tiantian">天天小学</option>
                </select>
        <br><br><br>
        <input type="submit" value="提交"/> &nbsp;&nbsp;<input type="reset" value="重置" />
        <br> <br> <br>
        <input type="button" value="点我序列化为url" id="serializeUrl"/>&nbsp;&nbsp;<input type="button" value="点我序列化为json" id="serializeJson"/>
 </form>

1.var str = $("#test_form").serialize();//返回字符串

输出:username=&password=&hobby=eat&sex=man&school=yangguang

2.var jsonData = $("#test_form").serializeArray();//返回json对象

输出:[

{"name":"username","value":""},

{"name":"password","value":""},

{"name":"hobby","value":"eat"},

{"name":"sex","value":"man"},

{"name":"school","value":"yangguang"}

]

3.使用serializeJson(),并不是jquery自带的函数,

(function($){ 
        $.fn.serializeJson=function(){ 
          var serializeObj={}; 
          var array=this.serializeArray(); 
          var str=this.serialize(); 
          $(array).each(function(){ 
            if(serializeObj[this.name]){ 
              if($.isArray(serializeObj[this.name])&&this .value!=""){ 
                serializeObj[this.name].push(this.value); 
              }else { 
                  if(this .value!=""){
                      serializeObj[this.name]=[serializeObj[this.name],this.value]; 
                  }           
              } 
            }else{ 
                if(this .value!=""){
                     serializeObj[this.name]=this.value; 
                }          
            } 
          }); 
          return serializeObj; 
        }; 
      })(jQuery);

使用:var data = $("#test_form").serializeJson();//返回json对象

输出:序列化为json格式为:{"hobby":"eat","sex":"man","school":"yangguang"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值