序列化表单

本文介绍了两种将HTML表单数据转换为易于处理的JavaScript对象的方法。第一种方法使用`serialize()`方法并进行字符串处理;第二种方法利用`serializeArray()`简化转换过程。这两种方法均适用于处理包括复选框在内的各种表单元素。
方法一:
function getFormData(form){
  var data = form.serialize();
  data = decodeURI(data);
  var arr = data.split('&');
  var item,key,value,newData={};
  for(var i=0;i<arr.length;i++){
    item = arr[i].split('=');
    key = item[0];
    value = item[1];
    if(key.indexOf('[]')!=-1){
      key = key.replace('[]','');
      if(!newData[key]){
        newData[key] = [];
      }
      newData[key].push(value);
    }else{
      newData[key] = value;
    }
  }
  return newData;
}
    function getFormData(form){
      var data = form.serialize();
      data = decodeURIComponent(data,true);
      data = decodeURI(data);
      var arr = data.split('&');
      var item,key,value,newData={};
      for(var i=0;i<arr.length;i++){
          item = arr[i].split('=');
          key = item[0];
          value = item[1];
          if(key.indexOf('[]')!=-1){
              key = key.replace('[]','');
              if(!newData[key]){
                  newData[key] = [];
              }
              newData[key].push(value);
          }else{
              newData[key] = value;
          }
      }
      return newData;
  }
方法一的2个不同在于decodeURIComponent的转义,根据自己编码格式选择是否转义
方法二:
  $('#submit').click(function() {
   
var d = {};
   
var t = $('form').serializeArray();
    $.each(t, 
function() {
      d[
this.name] = this.value;
    });
    alert(JSON.stringify(d));
  });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值