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 ...
随机推荐
- asp.net 操作共享目录文件
背景: 服务器A为程序服务器,服务器B为文件服务器.服务器A的程序需要修改删除服务器B的文件. 实现方式:采用虚拟目录映射 操作步骤: 1.在服务器A与服务器B建立相同账号和密码的windows用户 ...
- Spring aop 简单示例
简单的记录一下spring aop的一个示例 基于两种配置方式: 基于xml配置 基于注解配置 这个例子是模拟对数据库的更改操作添加事物 其实并没有添加,只是简单的输出了一下记录 首先看下整个例子的目 ...
- 学习动态性能表(1)--v$sysstat
由动态性能表学到的 第一篇--v$sysstat 2007.5.23 按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wid ...
- android中HttpClient的应用(POST方法)
首先在http://hc.apache.org/downloads.cgi下载HttpClient包 直接看代码 import android.os.Handler; import android.o ...
- Linux Samba目录服务搭建与Java客户端访问
前言: 本文比较简略,只求快速入门,若要了解详情,推荐一篇文章:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 1,安装sa ...
- HPPTS SSL
https加密.解密.及验证过程如下图: HTTPS怎么实现安全传输的? 建立安全传输 HTTPS中, 客户端首先打开一条到WEB服务器443端口的连接. 一旦建立了TCP连接 ,客户端和服务器就会初 ...
- nginx 安装echo模块
学习资源: https://www.cnblogs.com/xwupiaomiao/p/7997938.html https://blog.csdn.net/hb1707/article/detail ...
- WP8.1通过StreamSocket连接C++服务器
注:当服务端和手机模拟器运行在一台机器时,会有奇怪错误.将服务端放在其它机器上更改客户端连接地址,运行正常.或者直接用本机modern调试也可以. 实例化一个对象 StreamSocket clien ...
- Ehcache入门介绍一
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 特性有: 1. 快速轻量 Ehcache的线程机制是为大型高并发系统设 ...
- 如何在windows7中使用“专用字符编辑器”中的字
工具/原料 win7电脑 系统自带的“专用字符编辑器” 系统自带的“字符映射表” 百度经验:jingyan.baidu.com 方法/步骤 1 点击开始→所有程序→附件→系统工具→专用字符编辑器: 步 ...