JS 表单数据封装到后台的工具类

//工具
var Utils = {
//通过表单得到数组
getArrayByForm : function (formId) {
var arr = $(formId).serializeArray();
return arr;
},
//通过数组得到字符串(多值和单值)后台无需定义数组
getStringByArray : function (array) {
var arr = $.param(array);
return arr;
},
//通过数组得到JSON对象(单值)
getJSONByArray : function(arr) {
var obj = {};
$.each(arr,function(name,value){
obj[this.name] = this.value;
});
return obj;
},
//通过数组得到JSON对象(单值和多值)
getJSONByArrayEnhanced : function(arr) {
var obj={};
$(arr).each(function(){  
             if(obj[this.name]){  
                 if($.isArray(obj[this.name])){  
                obj[this.name].push(this.value);  
                 }else{  
                obj[this.name]=[obj[this.name],this.value];  
                 }  
             }else{  
            obj[this.name]=this.value;   
             }  
         });  
return obj;
},



//通过表单得到json字符串
getStringByForm : function (formId){    
        var str = $(formId).serialize();    
        return str;
},
//通过 json字符串得到JSON对象(单值),
getJSONByStringForSecurity : function(str){   
var str=str.replace(/&/g,"\",\"");
str=str.replace(/=/g,"\":\"");
str = "{\""+str+"\"}";   
var obj = JSON.parse(str);//官方
return obj;    
},
//通过 json字符串得到JSON对象(单值),有风险
    getJSONByStringForRisk : function(str){  
         var str = str.replace(/&/g,"','");    
         str = str.replace(/=/g,"':'");    
         str = "({'"+str +"'})";   
         var obj = "";
         try  {
        obj = eval(str); //不安全会执行json串中的表达式
         }catch(exception) {
             alert(exception);
         }
         return obj;    
     },
     //通过 json字符串得到JSON对象(单值和多值),有风险 --完善中
  getJSONByStringEnhanced : function (str) {  
     var jsonObj = {};  
     str = str.replace(/\+/g," ");   // g表示对整个字符串中符合条件的都进行替换  
     var param = str.split("&");  
     $.each(param,function(name,value){
      //alert(name + "----" + value);
     });
     for ( var i = 0; param != null && i < param.length; i++) {  
         var parai = param[i].split("=");
         for(var j = 1; param != null && j < param.length; j++) {
          var paraj = param[j].split("=");
          if(parai[1] == paraj[1]) {
          jsonObj[parai[0]] = para[1]; 
          }
         }
         jsonObj[para[0]] = para[1];  
     }  
     var temp = JSON.stringify(jsonObj);  
     var queryParam = JSON.parse(temp);  
     return queryParam;  
 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值