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; }
Jquery 组合form元素为json格式,asp.net反序列化
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@