2018-09-20

2018-09-20  本文已影响8人  VisuperviReborn

原生js序列化表单

 function  serialize(target) {
      let arrFormData = [], objFormData = {},rel = {};
      [].slice.call(target.elements).forEach(function (ele) {
          let type = ele.type,disabled = ele.disabled,name = ele.name,value = encodeURIComponent(ele.value || '');
          if(!name || disabled || !type ||(/^reset|submit|image$/i.test(type)) || (/^checkbox|radio$/i.test(type) && !ele.checked)){
            return;
          }
          type = type.toLocaleLowerCase();
          if(type !== 'select-multiple') {
              if (objFormData[name]) {
                  objFormData[name].push(value);
              } else {
                  objFormData[name] = [value];
              }
          }else{
            [].slice.call(ele.querySelector('option')).forEach(function (option) {
              let optionValue = encodeURIComponent(option.value || '');
              if(option.selected){
                if(objFormData[name]){
                  objFormData[name].push(optionValue);
                }else{
                  objFormData[name] = [optionValue];
                }
              }
            });
          }
      });
      for(let key in objFormData){


        arrFormData.push(key+'='+objFormData[key].join());
      }
      // return arrFormData.join('&');
      return objFormData;
  }

可以返回json格式数据,也可以返回拼接好的字符串
在最后return的时候可以选择返回格式
用的时候把最后改一下就行了

上一篇 下一篇

猜你喜欢

热点阅读