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