首页 > 编程笔记 > JavaScript笔记
阅读:8
jQuery serialize()的用法(附带实例)
实际项目应用中经常需要使用表单,例如注册表单、登录表单、评论表单等来提供数据。提交表单的常规方法是将表单内容提交到指定页面,在这个过程中整个浏览器都会被刷新。而使用 AJAX 技术能够实现异步提交表单。
在使用全局函数 $.get() 和 $.post() 向服务器传递参数时,其中的参数是通过逐个搜索输入字段的方式进行传输的,例如:
为了解决这个问题,jQuery 引入 serialize() 方法。与其他方法一样,serialize() 方法也作用于一个 jQuery 对象,它可以将 DOM 元素内容序列化为字符串,用于 AJAX 请求。
【实例】使用 serialize() 方法序列化表单。
1) 创建 index.html 页面,构建表单,在此处给表单中的控件添加 name 属性,并给表单赋予一个 id 属性值。主要代码如下:
2) 引入 jQuery 库,并且在引入代码下方编写 jQuery 代码,使用 $.post() 方法提交表单、传值。具体代码如下:

图 1 使用serialize()方法序列化表单
由此可以看出,使用 serialize() 方法序列化表单非常便捷,不用手动书写传递参数。其中给 <form> 元素加上 id 属性值是为了便于获取表单对象,进而调用该对象的 serialize() 方法。
在使用全局函数 $.get() 和 $.post() 向服务器传递参数时,其中的参数是通过逐个搜索输入字段的方式进行传输的,例如:
$.post("index.php", { username: $("#username").val(), content: $("#content").val() }, function(data, textStatus) { // 省略部分代码 });如果表单的输入字段过多,那么使用这种方式传递参数就比较麻烦。
为了解决这个问题,jQuery 引入 serialize() 方法。与其他方法一样,serialize() 方法也作用于一个 jQuery 对象,它可以将 DOM 元素内容序列化为字符串,用于 AJAX 请求。
【实例】使用 serialize() 方法序列化表单。
1) 创建 index.html 页面,构建表单,在此处给表单中的控件添加 name 属性,并给表单赋予一个 id 属性值。主要代码如下:
<form id="testForm" action=""> 用户名:<input type="text" name="username" /><br /><br /> 性别:<input type="text" name="sex" /><br /><br /> 年龄:<input type="text" name="age" /><br /><br /> 邮箱:<input type="text" name="email" /><br /><br /> 地址:<input type="text" name="address" /><br /><br /> 内容:<textarea id="content" name="content"></textarea><br /><br /> <input type="button" id="button" name="button" value="提交" /><br /><br /> <div id="responseText"></div> </form>
2) 引入 jQuery 库,并且在引入代码下方编写 jQuery 代码,使用 $.post() 方法提交表单、传值。具体代码如下:
$(document).ready(function() { $("#button").on("click", function() { $.post( "index.php", $("#testForm").serialize(), // 序列化表单 function(data) { var html = ""; html += "用户名:" + data.username + "<br/>"; html += "性别:" + data.sex + "<br/>"; html += "年龄:" + data.age + "<br/>"; html += "邮箱:" + data.email + "<br/>"; html += "地址:" + data.address + "<br/>"; html += "内容:" + data.content + "<br/>"; $("#responseText").html(html); // 显示用户提交的留言信息 }, "json" ); }); });在页面中填入信息,单击“提交”按钮,运行效果如下图所示:

图 1 使用serialize()方法序列化表单
由此可以看出,使用 serialize() 方法序列化表单非常便捷,不用手动书写传递参数。其中给 <form> 元素加上 id 属性值是为了便于获取表单对象,进而调用该对象的 serialize() 方法。