4.jQuery中Ajax提交表单数据

目录

[1 表单的同步提交](#1 表单的同步提交)

[2 Ajax监听表单提交事件 submit](#2 Ajax监听表单提交事件 submit)

[3 阻止表单的默认提交行为 e.preventDefault()](#3 阻止表单的默认提交行为 e.preventDefault())

[4 获取表单内的数据](#4 获取表单内的数据)

[4.1 字符串型 serialize()](#4.1 字符串型 serialize())

[4.2 数组包着对象型 serializeArray()](#4.2 数组包着对象型 serializeArray())


1 表单的同步提交

点击submit按钮的时候会将页面跳转到action的url,提交表单信息与跳转url是同步的,所以这个过程叫表单的同步提交

同步提交会有两个问题

  • 提交后会跳转到新的页面
  • 之前页面的状态会丢失

我们现在将第二个input的类型改为password

这个时候点击后退

发现你之前输入的password的内容就没有了

我们让表单只采集数据,Ajax发送数据,这样就不会发生页面的跳转,就会避免了上面两个问题

2 Ajax监听表单提交事件 submit

这两种方式都可以,我下面就用on做例子

html

js

发现可以触发submit事件

但是还是会跳转到action的url

3 阻止表单的默认提交行为 e.preventDefault()

调用事件对象的event.preventDefault()可以阻止表单的默认提交行为

html

js

使用.on或者.submit都是一样的,相同的事件对象,相同的方法

点击提交后还是这个页面,并且执行了该事件的函数

4 获取表单内的数据

4.1 字符串型 serialize()

可以通过val()这种方法拿到指定元素的数据,那种方法如果在表单中有多个信息就比较麻烦,我们可以使用serialize()一次获取表单提交的全部数据

  • 使用$(selector)获取表单元素
  • 表单中的每一个input需要有name属性,哪个没有哪个就获取不到

点击提交后会获得用户提交的数据,获取到的变量类型为字符串

点击提交后会获得用户提交的数据,获取到的变量类型为字符串

serialize()可以直接传入Ajax的data中,使用起来很方便,但是serialize()不方便校验

4.2 数组包着对象型 serializeArray()

serializeArray()同样可以直接传入Ajax的data,serializeArray()校验起来要方便一些

相关推荐
Alice-YUE10 分钟前
React 渲染机制速通:Render 树、Fiber 树与更新调度
前端·react.js·前端框架·react·fiber·前端性能·渲染机制
恋猫de小郭29 分钟前
Meta 分享怎么用 AI 迁移 Compose 项目不烧心
android·前端·flutter
Ai-_Man36 分钟前
请问豆包的智能体聊天记录该怎么弄
开发语言·前端·javascript·人工智能·小程序·ecmascript·电脑
IT_陈寒43 分钟前
SpringBoot自动配置把我坑惨了:这些隐式规则要小心
前端·人工智能·后端
এ慕ོ冬℘゜1 小时前
es6基础知识
前端·javascript·es6
吠品1 小时前
DicomViewer24 的 CI 又红了:MPR 测试偶发失败排查记
java·服务器·前端
troy1281 小时前
用 Cube.js 构建金融财务系统的 Semantic Layer:从架构到实战
javascript·金融·架构
泡海椒4 小时前
JQuick-Excel FORMAT 导出格式实战:日期、金额显示与 TRANSFORM 的边界
前端·python·excel
迅猛龙办公室10 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
小狼1545410 小时前
浏览器扩展脚本为什么有时候不生效:注入时机、iframe 和单页路由,多多开票助手
前端·chrome