js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化
js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化
一、总结
一句话总结:如果用ajax传递表单的数据,如果不进行表单的序列化,要一个参数一个参数的写,太麻烦,序列化的话,一句代码搞定。data:$('form').serialize(),这样一句话解决复杂的表单ajax的post传值过程。
1、表单序列化函数是什么?
$(selector).serialize()和serializeArray()
- 24 <script>
- 25 $(function(){
- 26 $('form input[type=button]').click(function(){
- 27 $.ajax({
- 28 type:'POST',
- 29 url:'buy.php',
- 30 // data:{
- 31 // user:$('form input[name=user]').val(),
- 32 // Tel:$('form input[name=Tel]').val(),
- 33 // buy:$('form select[name=buy]').val()
- 34 // },
- 35 data:$('form').serialize(),
- 36 success:function(responseTxt,statusTxt,xhr){
- 37 //alert(responseTxt)
- 38 $('#txt').html(responseTxt)
- 39 }
- 40 })
- 41
- 42 })
- 43 })
- 44 </script>
2、表单序列化函数serialize()如何使用?
$(selector).serialize(),其实设置好监听对象就好了
- 35 data:$('form').serialize(),
3、表单序列化的优势是什么(讲解+实例)?
极大的减少代码量和出错
jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,这样,我们就可以把序列化的值传给ajax()作为url的参数,轻松使用ajax()提交form表单了,而不需要一个一个获取表单中的值然后传给ajax()
- 24 <script>
- 25 $(function(){
- 26 $('form input[type=button]').click(function(){
- 27 $.ajax({
- 28 type:'POST',
- 29 url:'buy.php',
- 30 // data:{
- 31 // user:$('form input[name=user]').val(),
- 32 // Tel:$('form input[name=Tel]').val(),
- 33 // buy:$('form select[name=buy]').val()
- 34 // },
- 35 data:$('form').serialize(),
- 36 success:function(responseTxt,statusTxt,xhr){
- 37 //alert(responseTxt)
- 38 $('#txt').html(responseTxt)
- 39 }
- 40 })
- 41
- 42 })
- 43 })
- 44 </script>
二、jquery的ajax部分为什么需要对表单进行序列化
1、相关知识
表单序列化
- 语法:$(selector).serialize()
jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,这样,我们就可以把序列化的值传给ajax()作为url的参数,轻松使用ajax()提交form表单了,而不需要一个一个获取表单中的值然后传给ajax()
- serializeArray()序列化表格元素(类似'.serialize()'方法返回JSON数据结构数据。
’’’注意’’’此方法返回的是JSON对象而非JSON字符串。
2、代码
html
- <!DOCTYPE html>
- <html lang="en">
- <style>
- </style>
- <head>
- <meta charset="UTF-8">
- <title>演示文档</title>
- <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
- <style type="text/css">
- </style>
- </style>
- </head>
- <body>
- <form id="form1">
- 姓名:<input type="text" name="user"><br>
- 电话:<input type="text" name="Tel"><br>
- <select name="buy">
- <option>买新房</option>
- <option>看二手房</option>
- </select>
- <input type="button" value="提交">
- </form>
- <div id="txt"></div>
- <script>
- $(function(){
- $('form input[type=button]').click(function(){
- $.ajax({
- type:'POST',
- url:'buy.php',
- // data:{
- // user:$('form input[name=user]').val(),
- // Tel:$('form input[name=Tel]').val(),
- // buy:$('form select[name=buy]').val()
- // },
- data:$('form').serialize(),
- success:function(responseTxt,statusTxt,xhr){
- //alert(responseTxt)
- $('#txt').html(responseTxt)
- }
- })
- })
- })
- </script>
- </body>
- </html>
php
- <?php
- echo $_POST['buy'].'---'.$_POST['user'].'---'.$_POST['Tel']
- ?>
js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化的更多相关文章
- js进阶 14 jquery的ajax有哪些函数和事件(多练)
js进阶 14 jquery的ajax有哪些函数和事件(多练) 一.总结 一句话总结:常用:load.ajax.post.get.getScript().getJSON().表单序列化,ajax事件这 ...
- js进阶 13-11/12 jquery如何实现折叠导航
js进阶 13-11/12 jquery如何实现折叠导航 一.总结 一句话总结:还是用的slideToggle滑动效果,并且这一个展开时,所有兄弟都关闭. 1.文字缩进怎么设置? 感觉设置margin ...
- js进阶---12-11、jquery如何给动态创建出来的元素绑定事件
js进阶---12-11.jquery如何给动态创建出来的元素绑定事件 一.总结 一句话总结:通过事件委托的方式,通过on方法 1.on方法在事件绑定的时候,data方式带额外参数时,字符串参数和其它 ...
- js进阶---12-12、jquery事件委托怎么使用
js进阶---12-12.jquery事件委托怎么使用 一.总结 一句话总结:通过on方法(事件委托),给要绑定事件的元素的祖先绑定事件,从而达到效果. 1.事件委托是什么? 通过事件冒泡,让子元素绑 ...
- js进阶---12-10、jquery绑定事件和解绑事件是什么
js进阶---12-10.jquery绑定事件和解绑事件是什么 一.总结 一句话总结:on和off. 1.jquery如何给元素绑定事件? on方法 22 $('#btn1').on('click', ...
- js进阶 13-9/10 jquery如何实现三级列表
js进阶 13-9/10 jquery如何实现三级列表 一.总结 一句话总结:用的是定位,父标签相对定位,子标签就可以绝对定位了,绝对定位的孩子还是可以设置绝对定位.用toggle设置子菜单显示和隐藏 ...
- js进阶课程 12-9 jquery的事件对象event的方法有哪些?
js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...
- js进阶 11-4/5 jquery中css的类的操作有哪些
js进阶 11-4/5 jquery中css的类的操作有哪些 一.总结 一句话总结:jquery中css的类的操作有增删切三种. 1.jquery中css的类的操作有哪些? 增删切三种 addCla ...
- js源码 模仿 jquery的ajax的获取数据(get,post )的请求封装
function ajax(obj){ // 默认参数 var defaults = { type : 'get', data : {}, url : '#', dataType : 'text', ...
随机推荐
- 15.C语言多线程实现变色龙以及cmd窗口标题变化
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <stdio.h> #include <Wind ...
- 线性同余同余方程组解法(excrt)
[问题描述] 求关于 x 的同余方程组 x%a 1 =b 1 a1=b1 x%a 2 =b 2 a2=b2 x%a 3 =b 3 a3=b3 x%a 4 =b 4 a4=b4 的大于等于 0 ...
- iRedMail邮件系统配置简易视频安装教程
iRedMail邮件系统配置简易视频安装教程 iRedMail邮件系统配置简易视频安装教程 iRedMail中文名为“艾瑞得邮件系统”, 属于开源的企业邮件解决方案,但其性能不逊于任何商 ...
- Hyper-v Server安装与配置-新加GUI界面配置工具介绍
650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" ...
- Linux VNC客户端软件VNC Viewer | RealVNC
Linux很多时候是作为服务器操作系统,如果是桌面系统通常情况会远程管理linux服务器,很多时候通过VNC进行远程管理,这个时候就要在客户端安装VNC客户端软件,VNC Viewer | RealV ...
- MyEclipse的代码自动提示功能
一般默认情况下,Eclipse ,MyEclipse的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的, ...
- caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)
很容易想到f[i]为前i项的最优价值,但是我一直在纠结如果重量满了该怎么办. 正解有点枚举的味道. 就是枚举当前这辆车与这辆车以前的组合一组,在能组的里面取最优的. 然后要记得初始化,因为有min,所 ...
- Windows7下修改pip源
以下列举三种方式的pip源配置: 1. 设置环境变量PIP_CONFIG_FILE指向pip.ini源配置文件,pip.ini文件内容如下: [global] index-url = http://m ...
- 几种类型的db,以及最新的db排名,看一下
5月数据库排名: http://geek.csdn.net/news/detail/196118 另外这篇文章里面提到了一些内嵌式数据库: http://blog.csdn.net/leagoal/a ...
- Linux经常使用命令(十六) - whereis
whereis命令仅仅能用于程序名的搜索(程序安装在哪?).并且仅仅搜索二进制文件(參数-b).man说明文件(參数-m)和源码文件(參数-s). 假设省略參数,则返回全部信息. 和find相比.wh ...