Jquery 组合form元素为json格式,asp.net反序列化


Posted in Javascript onJuly 09, 2009

作者:敖士伟 Email:ikmb@163.com 转载注明作者
说明: 1、js根据表单元素class属性,把表单元素的name和value组合为json格式;用表单元素class属性可以针对性地组合JSON数据。
2、后端ASP.NET用JavaScriptSerializer反序列化为对象实列。
3、好处:简化了前端数据读取与后端数据赋值。

function GetJSONStr(class_name) { 
var a = []; 
//文本框 
$("." + class_name).filter(":text").each(function(i) { 
//alert(this.name); 
//alert(this.value); 
a.push({ name: this.name, value: this.value }); }); 
//下拉列表 
$("." + class_name).filter("select").each(function(i) { 
//alert(this.name); 
//alert(this.value); 
a.push({ name: this.name, value: this.value }); 
}); 
//单选框 
$("." + class_name).filter(":radio").filter(":checked").each(function(i) { 
//alert(this.name); 
//alert(this.value); 
a.push({ name: this.name, value: this.value }); 
}); 
//复选框开始 
var temp_cb = ""; 
$("." + class_name).filter(":checkbox").filter(":checked").each(function(i) { 
if (temp_cb.indexOf(this.name) == -1) { 
temp_cb += this.name + ","; 
} 
}); 
var temp_cb_arr = temp_cb.split(","); 
var cb_name = ""; 
var cb_value = ""; 
for (var temp_cb_i = 0; temp_cb_i < temp_cb_arr.length - 1; temp_cb_i++) { 
cb_name = temp_cb_arr[temp_cb_i]; 
var cb_value_length = $("input[name='" + temp_cb_arr[temp_cb_i] + "']:checked").length; 
$("input[name='" + temp_cb_arr[temp_cb_i] + "']:checked").each(function(i) { 
if (i == cb_value_length - 1) 
cb_value += this.value; 
else 
cb_value += this.value + ","; 
}); 
//alert(cb_name); 
//alert(cb_value); 
a.push({ name: cb_name, value: cb_value }); 
} 
//复选框结束 

//组合为JSON 
var temp_json = ""; 
for (var json_i = 0; json_i < a.length; json_i++) { 
if (json_i != a.length - 1) { 
temp_json += '"' + a[json_i].name + '":"' + a[json_i].value + '",'; 
} 
else { 
temp_json += '"' + a[json_i].name + '":"' + a[json_i].value + '"'; 
} 
} 
return "{" + temp_json + "}"; 
}

ASP.NET
public partial class test : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
JavaScriptSerializer Serializer = new JavaScriptSerializer(); 
string r = Request.Form["msg"]; //{"Name":"MyName1","Single":"one"} 
t_json t_json_object = Serializer.Deserialize<t_json>(r); 
Response.Write(t_json_object.Name); 
Response.End(); 
} 
} 
class t_json 
{ 
public DateTime Name; 
public string Single; 
}
Javascript 相关文章推荐
类似天猫商品详情随浏览器移动的示例代码
Feb 27 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
js的toUpperCase方法用法实例
Jan 27 Javascript
JavaScript获取function所有参数名的方法
Oct 30 Javascript
JS HTML5实现拖拽移动列表效果
Aug 27 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
Jan 24 Javascript
vue+element实现表单校验功能
May 20 Javascript
微信小程序 Storage更新详解
Jul 16 Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 Javascript
Vue如何使用混合Mixins和插件开发详解
Feb 05 Javascript
js实现幻灯片轮播图
Aug 14 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 #Javascript
JavaScript 继承的实现
Jul 09 #Javascript
jquery text,radio,checkbox,select操作实现代码
Jul 09 #Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 #Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
Jul 09 #Javascript
javascript xml为数据源的下拉框控件
Jul 07 #Javascript
JS 自动完成 AutoComplete(Ajax 查询)
Jul 07 #Javascript
You might like
PHP与javascript对多项选择的处理
2006/10/09 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
深入理解PHP中的count函数
2016/05/31 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
python如何在循环引用中管理内存
2018/03/20 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
使用python制作一个解压缩软件
2019/11/13 Python
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
公务员培训自我鉴定
2013/09/19 职场文书
主持词开场白
2014/03/17 职场文书
双语教学实施方案
2014/03/23 职场文书
员工入职担保书范文
2014/04/01 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
护士2014年终工作总结
2014/11/11 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA