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 相关文章推荐
表单验证的完整应用案例探讨
Mar 29 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
May 19 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
JavaScript组合拼接字符串的效率对比测试
Nov 06 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 Javascript
微信小程序scroll-view实现字幕滚动
Jul 14 Javascript
深入浅出了解Node.js Streams
May 27 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 Javascript
js实现登录拖拽窗口
Feb 10 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 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 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
关于尾递归的使用详解
2013/05/02 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
php实现等比例压缩图片
2018/07/26 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
js实现放大镜特效
2017/05/18 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
js+h5 canvas实现图片验证码
2020/10/11 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
django 读取图片到页面实例
2020/03/27 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
私人会所最新创业计划书范文
2014/03/24 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
先进工作者推荐材料
2014/12/23 职场文书
合作合同协议书范本
2015/01/27 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
解决MySQL报“too many connections“错误
2022/04/19 MySQL