createTime--2016年9月25日08:54:48
参考链接:http://www.w3school.com.cn/tags/html_ref_urlencode.html
jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化

js部分

$(function() {//页面加载完毕
//给单选框添加一个单击事件
$("form input[name=sex]").click(function() {
$('#box').html(decodeURIComponent($(this).serialize()));//给当前form表单元素数据进行序列化,并进行//转码,结果是:sex=男/sex=女
})
});
/**
* 显示form表单进行序列化后的结果
*/
function showData() {
var result = $("form").serialize();//form表单进行序列化,获取的是所有带有name属性的form表单元素的name和值
$("#box").html(decodeURIComponent(result));//结果形如:userName=张三&userPass=iiiiiiN8&sex=男//&email=22@qq.com&address=河北
};
var FormSubmit = {};
$(function(){
(function() {
/**
* 方法一
*/
var button1 = $("form input[type=button]").eq(1);//或使用$("input:button").eq(1)
//获取元素下标为1的按钮
//$("form input[type=button]")[1]
//和$("form input[type=button]").get(1) 都无法获取到
//这是js获取集合中某一元素的方法;jquery中,需使用eq()方法
button1.click(function(){//为第二个按钮绑定一个点击事件
alert(1);
//ajax提交form表单
$.post("输入请求地址",encodeURI(encodeURI(decodeURIComponent($("form").serialize()))),function(result){
alert(result);
});
});
/**
* 方法二
* var button1 = $("form input:button")[1];
* button1.onclick = function(){
* alert(1);
* $.post("输入请求地址",encodeURI(encodeURI(decodeURIComponent($("form").serialize()))),function(result){
* alert(result);
* });
* }
*/
})();
});

  需要特别注意的是:

    1.网上许多都说明了$("form").serialize()方法可以序列化表单,但是并没有给出使用这种方法Ajax在提交form表单时后台接收到的中文乱码的问题,使用encodeURI(encodeURI(decodeURIComponent($("form").serialize())))这种方式可以解决中文参数乱码的问题,后台接收到的数据需要用java.net.URLDecoder.decode("接收到的数据","UTF-8"),再次进行转码即可。

    2.如果传的参数,没有中文,则直接使用$("from").serialize()方法传递参数即可

html部分

<form action="#">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="userPass" /></td>
</tr>
<tr>
<td>性别:</td>
<td>
<label><input type="radio" name="sex" value="男" checked="checked"/>男</label>
<label><input type="radio" name="sex" value="女" />女</label>
</td>
</tr>
<tr>
<td>邮件:</td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td>地址:</td>
<td>
<select name="address">
<option value="">---请选择省份---</option>
<option value="河南">河南</option>
<option value="河北">河北</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"><input type="button" value="显示表单数据" onclick="showData()"/></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="提交表单"/></td>
</tr>
</table>
</form>
<div id="box"></div>
 

jquery-序列化表单的更多相关文章

  1. 关于Jquery 序列化表单的注意事项

    在JQuery 的serialize方法序列化表单的过程中,如果表单的name值最后有空格,会出现“+”号,查源码可见原因.这一小问题就浪费了半小时的时间,记录下来,备忘.

  2. jquery序列化表单以及回调函数的使用

    在开发项目中.将前台的值传给后台,有时的JSP表单中的值有一两个,也有所有的值,假设这时一个个传,必然不是非常好的办法,所以使用jQuery提供的表单序列化方法,能够非常好的解决问题.同一时候能够封装 ...

  3. jQuery序列化表单 serialize() serializeArray()

    1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 格式:var data = $(form).serialize(); 2.serializeArray()方法 描述: ...

  4. JQuery序列化表单serialize() 以及 serializeArray()

    都是利用form表单传递数据的 1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 数据类似于这种: FirstName=Bill&LastName=Gates  ...

  5. jQuery序列化表单 serialize() serializeArray()(非常重要)

    https://m.2cto.com/kf/201412/361303.html 2014-12-15 1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 格式:var ...

  6. jQuery序列化表单数据 serialize()、serializeArray()及使用

    1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...

  7. jQuery 序列化表单 serialize() serializeArray()

    1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...

  8. jQuery 序列化表单数据 serialize() serializeArray()

    1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...

  9. jQuery序列化表单为JSON对象

    <form id="myform"> <table> <tr> <td>姓名:</td> <td> < ...

  10. jquery序列化表单

    没有使用其他的东西 , 数据传送是最基本的. 前台: var info = $('#dataForm').serialize() ; alert(decodeURIComponent(info,tru ...

随机推荐

  1. setTimeout() 实现程序每隔一段时间自己主动运行

    定义和使用方法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法 setTimeout(code,millisec) 參数 描写叙述 code 必需.要调用的函数后要运行 ...

  2. java变量深入理解

    4,变量:其实就是内存中的一个存储空间,用于存储常量数据. 作用:方便于运算.因为有些数据不确定.所以确定该数据的名词和存储空间. 特点:变量空间可以重复使用. 什么时候定义变量?只要是数据不确定的时 ...

  3. 解决TextView排版混乱或者自动换行的问题

    其实在TextView中遇到排版自动换行而导致混乱不堪的情况是非常常见的,而且导致这种问题产生的原因就是英文和中文混合输入,半角字符和全角字符混合在一起了.一般情况下,我们输入的数字.字母以及英文标点 ...

  4. Xcode插件管理器Alcatraz的使用

    Xcode插件管理器Alcatraz的使用 下载地址 https://github.com/alcatraz/Alcatraz 下载软件包 解压以及编译 重启Xode并Load Bundle 安装插件 ...

  5. 清除 Windows 系统垃圾的 bat

    @echo offecho 正在清除系统垃圾文件,请稍等......del /f /s /q %systemdrive%\*.tmpdel /f /s /q %systemdrive%\*._mpde ...

  6. [转载] java的书

    1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...

  7. 【Cocos2d-X开发学习笔记】第12期:动作类CCAction的详细讲解

    一般对于游戏中的精灵而言,它们不仅仅是存在于场景中,而且是动态展现的,例如,精灵移动的动态效果.动 画效果.跳动效果.闪烁和旋转动态效果等.每一种效果都可以看成是精灵的一个动作. 一.动作类(CCAc ...

  8. HDU1226:超级密码(BFS)

    Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进 ...

  9. Android常用http请求框架 简介及现状

    JDK支持的HttpUrlConnection HttpUrlConnection是JDK里提供的联网API,是最原始最基本的API,大多数开源的联网框架基本上也是基于此进行的封装的.HttpUrlC ...

  10. IOS系统之蓝牙外接设备

    Ios系统对于蓝牙外接设备在iphone4以前都是蓝牙2.0的时候,需要通过苹果的审核,据统计通过率仅有2%左右,现在蓝牙2.0基本上处于淘汰状态,所以在这里就不考虑了. 现在iphone4s以后的设 ...