原生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的时候能够选择返回格式 用的时候把最后改一下就好了json

相关文章
相关标签/搜索