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. js判断手机端和pc端

    var browser = { versions: function() { var u = navigator.userAgent, app = navigator.appVersion; retu ...

  2. CNZZ站点流量统计原理简析

    这是我的域名www.iyizhan.com.暂无内容,当中仅仅有一个页面index.html. 在index.html上放置了例如以下的 js 脚本: <script  src="ht ...

  3. MVC使用Gantt Chart实现甘特图,管理事情进度

    借助"甘特图",可以直观地了解任务.活动.工作的进度.dhtmlxGantt是一个开源的Javacirpt库,能帮助我们快速创建"甘特图",本篇体验在MVC中的 ...

  4. 新浪行情 vb代码

    Sub 新浪行情() Cells.Clear Dim n As Integer, Js As Object Dim i As Integer, j As Integer, m As Integer, ...

  5. 关于JSONP以及跨域相关

    什么是跨域: 浏览器对ajax请求的限制,不允许跨域请求资源. http://www.a.com--->http://www.b.com       是跨域 http://www.a.com-- ...

  6. poj 1007 Quoit Design(分治)

    Quoit Design Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  7. java操作Hbase实例

    所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.u ...

  8. @JVM新一代的垃圾回收算法

    垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限.但是他无法解决的一个问题,就是Full GC所带来的应用暂停.在一些对实时性要 ...

  9. 同一页面的两个Iframe,其中一个iframe获取另一个iframe内的iframe中的元素值

    公共父页面(主页面): <%@ page language="java" import="java.util.*" pageEncoding=" ...

  10. THINKPHP URL模块大小写导致404问题

    最近我使用THINKPHP开发了一个项目在本地的集成开发环境wampserver做开发时并没有出现问题 上传到linux系统也没有出现问题,但当上传到windows平台上就出现了问题"文件4 ...