jquery表单数据反序列化为字典
.前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication10.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$.fn.GetPostData = function () {
var data = {};
var k = false;
$(this).find(".datacontrol").each(function (i, value) { var field = $(value).attr("name");
if (field == null) {
field = $(value).attr("id");
}
if (value.tagName == "INPUT") {
if (value.type == "checkbox") {
if ($(value).prop("checked") == true) {
if (data[field]) {
var a = +$(value).val();
if (a == "") {
a = "";
}
data[field] = data[field] + "," + a;
k = true;
} else {
var a = +$(value).val();
data[field] = ""
k = true;
}
}
}
else if (value.type == "radio") {
if ($(value).attr("checked") == true) {
data[field] = $(value).val();
k = true;
}
}
else {
if ($(value).val() != "") {
data[field] = $(value).val();
k = true;
}
}
} else if (value.tagName == "SELECT") {
if ($(value).val() != "") {
data[field] = $(value).val();
k = true;
}
}
else if (value.tagName == "DIV") {
data[field] = $(value).html();
k = true;
}
else if (value.tagName == "IMG") {
data[field] = $(value).attr("src");
k = true;
}
else if (value.tagName == "SPAN") {
data[field] = $(value).html();
k = true;
}
else if (value.tagName == "TEXTAREA") {
if ($(value).val() != "") {
data[field] = $(value).val();
k = true;
}
} });
if (!k) {
return null;
}
return data;
}
$(function () { $("#btn").on("click", function () {
//var postParam = new Object();
//alert($("#t1").val());
//postParam.t1 = $("#t1").val();
//postParam.t2 = $("#t2").val();
//postParam.t3 = $("#t3").val();
//postParam = JSON.stringify(postParam);
var postParam = $("#form1").GetPostData();
postParam = JSON.stringify(postParam);
$.post("webform1.aspx?_method=postParam&data="+postParam, function (data) { });
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<input type="button" id="btn" name="btn" value="点击我" />
<input type="text" id="t1" name="t1" value="t11" class="datacontrol"/>
<input type="text" id="t2" name="t2" value="t22" class="datacontrol"/>
<input type="text" id="t3" name="t3" value="t33" class="datacontrol"/>
</form>
</body>
</html> .后台代码 using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace WebApplication10
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
switch (Request["_method"])
{
case "postParam":
var dictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string,string>>(Request["data"]);
break; }
}
}
}
jquery表单数据反序列化为字典的更多相关文章
- jquery表单数据验证扩展方法
/** 表单数据验证 **/ $.fn.Validform = function () { var Validatemsg = ""; var Validateflag = tru ...
- 将表单数据转化为json数据
/** * 将Form表单转成符合后台要求的json格式数据 * @param frm form表单Id * * @return json格式的数据 */function getFormJson(fr ...
- 序列化表单数据$("form").serializeArray()
在做一个后台管理系统类似的项目中发现不能直接取得表单中的数值,于是想到先将表单数据转化为json,然后再用js从json中获取数据,那不就简单了吗? 于是我用了jquery的serializeArra ...
- Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个
(function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, sh ...
- 将JSON反序列化为指定的.NET类型
前言: 关于将JSON格式数据反序列化为指定的.NET类型数据常见的场景就是,关于网络请求获取请求成功的响应数据.本篇主要讲的的是如何通过使用Newtonsoft.Json中的JsonConvert. ...
- 将JSON字符串反序列化为指定的.NET对象类型
目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...
- jQuery表单验证以及将表单序列化为json对象小练习
jquery表单验证(非实时验证),同时,将表单序列化为json对象提交表单. <!DOCTYPE html> <html lang="en"> <h ...
- jquery ajax异步提交表单数据的方法
使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的: 处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据 ...
- jQuery对的表单数据序列化和校验
jQuery对的表单数据序列化和校验 表单序列化 如果想让表单通过ajax异步提交,那么首先我们要通过js获取到每个表单中输入的值,如果表单项比较多的话,是一件很麻烦,很痛苦的事情,那么我们可以通过j ...
随机推荐
- Linq:从List列表中查询数据(Where查询)
获取List<Customer> customerList的函数见:http://www.cnblogs.com/yf2011/p/3369927.html 输出List中Berlin城市 ...
- uoj #190. 【集训队互测2016】消失的源代码 提交答案题
Test 1: 发现是一个字母表的映射 把 \('a' \to 'z'\) 打进去找出映射就好了QAQ . Test 2: 求助 \(dalao\) 得知的点.. 答案是 : \(2016x^2 + ...
- vscode: Visual Studio Code 常用快捷键【轉】
主命令框 F1 或 Ctrl+Shift+P: 打开命令面板.在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace 会进入到 Ctrl+P 模式 在 Ctrl+P 下输入 > ...
- idea操作
archetypeCatalog internal 1字体: 2编码 http://blog.csdn.net/frankcheng5143/article/details/50779149 3部署 ...
- ror配置unicorn部署
unicorn是目前在ror上比较流行的应用服务器,配合nginx用来直接部署rails程序,下面这种方式应该是共享socket,不断fork子进程,有点类似php-fpm的模式 安装unicorn ...
- gen_server的一些心得
gen_server并不是我原来概念中的tcp_server或者udp_server的概念,只是一个纯粹的消息服务器,另外,附上它的一些回调函数的简单说明参考地址 http://hi.baidu.co ...
- curl -I 说明
curl -I 查看header头信息
- jenkins获取测试报告展示的方法
1.写好了可以生成报告的python文件 2.在jenkins里下载 HTML Publisher plugin 插件 系统管理--管理插件--选择[可选插件]tab---搜索HTML Publis ...
- 装饰器1、无参数的装饰器 2、有参数的装饰器 3、装饰器本身带参数的以及如果函数带return结果的情况
装饰器分成三种: 1.无参数的: 2.有参数的: 3.装饰器本身带参数的. 装饰器decorator又叫语法糖 定义:本质是函数,器就是函数的意思.装饰其他函数.就是为其他函数添加附加功能. 原则: ...
- mongdb与mysql的联系和区别
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值. ...