jquery 序列化form表单

本文介绍了为什么需要将form表单进行序列化,并演示了使用jQuery实现序列化的方法。包括获取URL带参数形式的数据和JSON对象两种方式,同时讨论了哪些元素会被序列化。

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

1.为什么要将form表单序列化?

ajax上传form表单的原始方式,是将form表单中所需要的键值对先获取,然后再组装成数据(两种方式:http:localhost:8080/test.do?personName=张三&sex=1  /   json的格式),这种方式有大量的form表单中的数据要获取,序列化的方式,只用调用一个方法即可获取上述两种方式的数据。

2.使用jquery序列化

<form id="test-form" action=""  >

  <input name="person.name"  value=“张三“>

       <input name="person.sex"  value="1“>

<!-- 测试被display修饰的元素是否会被序列化 -->

       <input   style="display:none;" name="person.age"  value="1“>

<!-- 测试没有name属性的元素是否会被序列化 -->

       <input    value="1“>

</form>

1.获取url带参数形式的数据

console.info($("#test-form").serialize() ) ;  //这里是使用jquery序列化的方法。

序列化之后的结果:“&person.name=张三(这里中文会被编码)&person.sex=1&person.age=1”

由此可见被display修饰的元素也会被序列化,没有name属性的input框不会被序列化,因为序列化的本质是key-value的形式

2.获取json对象

console.info($("#test-form").serializeObject());

序列化之后的结果:{"person.name":"张三","person.sex":"1","person.age"}

被display修饰的元素依然会被序列化

3.select/textarea等元素是否能被序列化?

未做测试,但是可以写input的隐藏域来代替这是标签

 

转载于:https://www.cnblogs.com/blogxiao/p/9066209.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值