您的位置:首页 > Web前端 > JavaScript

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

2016-03-09 10:51 447 查看
//工具

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: