首页 / 脚本样式 / JavaScript / Jquery 组合form元素为json格式,asp.net反序列化
作者:敖士伟 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; }
收藏该网址