Ajax Step By Step5

本文介绍了如何使用表单序列化方法简化Ajax操作,并对比了传统表单提交方式与使用.serialize()方法的区别。同时,还介绍了如何利用.serializeArray()获取JSON格式的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第五.【表单序列化】

Ajax 用的最多的地方莫过于表单操作,而传统的表单操作是通过 submit 提交将数据传 输到服务器端。如果使用 Ajax 异步处理的话,我们需要将每个表单元素逐个获取才方能提 交。这样工作效率就大大降低.

对比数据传输的差别:

//常规形式的表单提交
$('form input[type=button]').click(function(){ 
$.ajax({ 
type:'POST', 
url:'test.php', 
data:{
user:$('forminput[name=user]').val(), 
email:$('form input[name=email]').val()
 },
 success:function(response,status,xhr)
{ alert(response); } 
}); 
});

注意:当数据很多时user 和email位置获取数据容易出错。

怎么解决该问题呢??

方法为:使用表单序列化方法.serialize(),会智能的获取指定表单内的所有元素。这样,在面对大量表单元素时,会把表单元素内容序列化为字符串,然后再使用 Ajax 请求。

(2) //使用.serialize()序列化表单内容
$('forminput[type=button]').click(function(){ 
$.ajax({ 
type:'POST', 
url:'test.php',
 data:$('form').serialize(),
 success:function(response,status,xhr)
{ alert(response); }
 })
});

特别注意:.serialize()方法不但可以序列化表单内的元素,还可以直接获取单选框、复选框和下拉 列表框等内容。

(2.1)//使用序列化得到选中的元素内容

$(':radio').click(function(){ 
$('#box').html(decodeURIComponent($(this).serialize())); // decodeURIComponent编码转换
});

知识点:返回 JSON 数据的方法:.serializeArray()。这个方法 可以直接把数据整合成键值对的 JSON 对象。

$(':radio').click(function(){ 
console.log($(this).serializeArray()); var json=$(this).serializeArray(); $('#box').html(json[0].value); 
})

有时,我们可能会在同一个程序中多次调用$.ajax()方法。而它们很多参数都相同,这个时候我们可以使用 jQuery 提供的$.ajaxSetup()请求默认值来初始化参数。

$('forminput[type=button]').click(function(){
 $.ajaxSetup({ 
type:'POST',
 url:'test.php',
 data:$('form').serialize() });
 $.ajax({ 
success:function(response,status,xhr)
{ alert(response); } 
}); 
});

在使用 data 属性传递的时候,如果是以对象形式传递键值对,可以使用$.param()方法 将对象转换为字符串键值对格式。

Var obj={a:1,b:2,c:3};
 var  form=$.param(obj);  //将obj json对象转成字符串键值对
alert(form);

 

posted on 2016-12-27 00:58 WFaceBoss 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wfaceboss/p/6224466.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值