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', ...
随机推荐
- MVC5发展历程,从MVC2谈起
目前,MVC已经发布了5个版本,不包括一些临时的版本,为了更好的了解MVC5,知道MVC的发展历程是非常重要的.本篇随笔主要讲解3个版本的内容及其新特性. 1.MVC 2,发布日期:2010年3月 部 ...
- Introspector
import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; im ...
- Coderfroces 864 E. Fire(01背包+路径标记)
E. Fire http://codeforces.com/problemset/problem/864/E Polycarp is in really serious trouble — his h ...
- Chromium String usage
For Developers > Chromium String usage Types of StringsIn the Chromium code base, we use std:: ...
- OpenSUSE42.3 leap 软件源设置
一.OpenSUSE软件源介绍: 1.默认已经加入了官方的软件源,不过我们自己也可以根据需要添加很多非官方软件源,添加软件源时要注意: 非官方源可能包含一些试验中的不稳定的软件包 不同的软件源之 ...
- MHP 宿舍摄像头在门卫显示方案
通过VPN拨入公司内网,实现访问外网摄像头. 1. 宿舍和MHP公司各增加一条上网线路(可用移动) 2.宿舍处理: 2台带TF卡 摄像头,加入到萤石云端 130万摄像头+64G TF卡 3.宿 ...
- whereis---定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
whereis命令用来定位指令的二进制程序.源代码文件和man手册页等相关文件的路径. whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件 ...
- POJ——T3160 Father Christmas flymouse
Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 3496 Accepted: 1191 缩点,然后每个新点跑一边SPFA ...
- poj2486--Apple Tree(树状dp)
Apple Tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7789 Accepted: 2606 Descri ...
- java导入大量Excel时报错
在项目中同事遇到一问题,如今给大家分享一下. 在程序里面导入两千多条数据后.程序就报错. 刚開始以为是内存的问题.在经过细致跟踪代码后发现每次都是833行的第三列报错.也就是第一万列.最后在网上找到了 ...