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部分为什么需要对表单进行序列化的更多相关文章

  1. js进阶 14 jquery的ajax有哪些函数和事件(多练)

    js进阶 14 jquery的ajax有哪些函数和事件(多练) 一.总结 一句话总结:常用:load.ajax.post.get.getScript().getJSON().表单序列化,ajax事件这 ...

  2. js进阶 13-11/12 jquery如何实现折叠导航

    js进阶 13-11/12 jquery如何实现折叠导航 一.总结 一句话总结:还是用的slideToggle滑动效果,并且这一个展开时,所有兄弟都关闭. 1.文字缩进怎么设置? 感觉设置margin ...

  3. js进阶---12-11、jquery如何给动态创建出来的元素绑定事件

    js进阶---12-11.jquery如何给动态创建出来的元素绑定事件 一.总结 一句话总结:通过事件委托的方式,通过on方法 1.on方法在事件绑定的时候,data方式带额外参数时,字符串参数和其它 ...

  4. js进阶---12-12、jquery事件委托怎么使用

    js进阶---12-12.jquery事件委托怎么使用 一.总结 一句话总结:通过on方法(事件委托),给要绑定事件的元素的祖先绑定事件,从而达到效果. 1.事件委托是什么? 通过事件冒泡,让子元素绑 ...

  5. js进阶---12-10、jquery绑定事件和解绑事件是什么

    js进阶---12-10.jquery绑定事件和解绑事件是什么 一.总结 一句话总结:on和off. 1.jquery如何给元素绑定事件? on方法 22 $('#btn1').on('click', ...

  6. js进阶 13-9/10 jquery如何实现三级列表

    js进阶 13-9/10 jquery如何实现三级列表 一.总结 一句话总结:用的是定位,父标签相对定位,子标签就可以绝对定位了,绝对定位的孩子还是可以设置绝对定位.用toggle设置子菜单显示和隐藏 ...

  7. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  8. js进阶 11-4/5 jquery中css的类的操作有哪些

    js进阶 11-4/5  jquery中css的类的操作有哪些 一.总结 一句话总结:jquery中css的类的操作有增删切三种. 1.jquery中css的类的操作有哪些? 增删切三种 addCla ...

  9. js源码 模仿 jquery的ajax的获取数据(get,post )的请求封装

    function ajax(obj){ // 默认参数 var defaults = { type : 'get', data : {}, url : '#', dataType : 'text', ...

随机推荐

  1. Win7+MSVC2010+PCL1.7.2

    我的配置环境是Win7+MSVC2010+PCL1.7.2. 网上关于点云库配置的文章已经很多,这里不做过多的重复,这里只讲一下自己在配置过程中遇到的问题及一些注意事项. K1: 在用Cmake编译时 ...

  2. Eclipse如何新建一个tomcat_server发布web项目

    方法/步骤     通过Eclipse打开一个正在开发阶段的java的web项目,没有项目的,只是为了学习的话,可以新建一个测试的java的web项目即可.在功能窗口找到如图所示的Servers窗口, ...

  3. VBA 字符串操作(基础篇)

    转自:http://blog.csdn.net/jyh_jack/article/details/2315345 mid(字符串,从第几个开始,长度) 在[字符串]中[从第几个开始]取出[长度个字符串 ...

  4. Vijos——T1626 爱在心中

    https://vijos.org/p/1626 描述 “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our H ...

  5. java中TCP传输协议

    class TcpClient { public static void main(String[] args) throws Exception { //创建client的socket服务,指定目的 ...

  6. 4.2.2 MINUS

    4.2.2 MINUS正在更新内容,请稍后

  7. Python!Are you kidding me?

    前几天由于python给我带来了兴奋写了一篇文章叫做<The beauty of python 1>,今天则是由于一个小错误而写下此文. 也是缘因为我的工作,问题是这种: 我有一个文档.里 ...

  8. linux 进程等待 wait 、 waitpid

    waitpid() 与 wait() 功能相似,都是用户主进程等待子进程结束或中断. 可用于进程之间的同步 wait 函数原型 pid_t wait(int *status); 函数说明 wait() ...

  9. 2017国家集训队作业[agc014d]Black and White Tree

    2017国家集训队作业[agc014d]Black and White Tree 题意: ​ 有一颗n个点的树,刚开始每个点都没有颜色.Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,B ...

  10. arping---发送arp请求到一个相邻主机

    arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping命令检查设备上的硬件地址.能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息.功能 ...