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. wrote a programming language

    https://medium.freecodecamp.org/the-programming-language-pipeline-91d3f449c919

  2. [Node.js]DNS模块

    摘要 nds模块是node.js用于解析域名的模块,对域名的解析非常快捷方便. DNS 引入dns模块 //引入dns模块 var dns=require("dns"); 方法 序 ...

  3. Xcode GDB 调试

    关于GDB 对于大多数Cocoa程序员来说,最常用的debugger莫过于Xcode自带的调试工具了.而实际上,它正是gdb的一个图形化包装.相对于gdb,图形化带来了很多便利,但同时也缺少了一些重要 ...

  4. 【docker】关于docker中挂载的解释

    现在有这么一个命令: docker run -p 33061:3306 --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=pisen -v /e ...

  5. matlab 使用OPENCV

    +cv就是 测试: h=cv.imread('c:\h.jpg');

  6. Minimum Depth of Binary Tree leetcode java

    题目: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the ...

  7. 说说CSS样式中你不知道的“大于号”

    继承在一定程度上让程序在编写的过程中更加方便,但是有时候也会给我们的程序带来一定的困扰,所以认真的学习继承的原理,以及处理的方法很重要.下面是Css中处理继承的一个方法.在一段CSS代码中见到一个大于 ...

  8. IDEA是如何导入项目的,及启动导入项目遇到的问题:无法加载主类的一连串问题

    1.启动报错误: 找不到或无法加载主类 org.spring.springboot.Application 可能在工程下面有多个module,然后,module里面的iml配置文件不止一个,删除留主的 ...

  9. JSP简单练习-定时刷新页面

    <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.ut ...

  10. 【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现

    Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现.不同的I ...