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;
}
}
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;
}
}
相关文章推荐
- js eval
- 输入信息页面js验证,提示信息
- Js实现Map对象
- javascript时间排序算法实现活动秒杀倒计时效果
- oc js相互调用
- javascript常用校验器
- 深入浅出 ES6:ES6 与 Babel / Broccoli 的联用
- 理解JavaScript里的 [].forEach.call() 写法
- JavaScript 数据类型总结
- js仿支付宝填写支付密码效果实现多方框输入密码
- 3.1 Javascript:探索客户端-设置网页元素根据窗口比例调整位置与大小
- javascript的定时器
- store.js - 轻松实现本地存储(LocalStorage)
- JavaScript的相关内容
- Retrofit2 使用FastJson作为Converter
- 自定义 JSON 对象
- SmartClient中jsp使用xml方式的调用过程
- 如何使用JavaScript来写ASP程序
- javascript实现动画
- JS HasMap使用