首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通过Ajax提交表单的数据

通过Ajax提交表单的数据

作者头像
岳泽以
发布于 2022-10-26 09:29:27
发布于 2022-10-26 09:29:27
2.9K00
代码可运行
举报
文章被收录于专栏:岳泽以博客岳泽以博客
运行总次数:0
代码可运行

表单同步提交的缺点

  1. <form>表单同步提交后,整个页面会发生跳转,跳转到action URL所指向的地址,用户体验很差。
  2. <form>表单同步提交后,页面之前的状态和数据会丢失。

解决方案:

表单只负责采集数据,Ajax负责将数据提交到服务器

监听表单提交事情

jQuery中,可以使用如下俩种方式,监听到表单的提交事件

方法一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            $('#f1').submit(function (e) {
                alert('监听到了表单的提交事件!')
            })

方法二:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            $('#f1').on('submit', function (e) {
                alert('监听到了表单提交事件')
            })

阻止表单的默认提交行为

当监听到表单的提交事件后,可以调用事件对象的 event.preventDefault()函数,来阻止表单的提交和页面的跳转,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            $('#f1').submit(function (e) {
                //阻止表单的提交和页面的跳转
                e.preventDefault()
            })$('#f1').on('submit', function () {
                 //阻止表单的提交和页面的跳转
                e.preventDefault()
            })

快速获取表单中的数据

1.serialize()函数

为了简化表单中数据的获取操作,jQuery提供了 serialize()函数,其语法格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(selector).serialize()

好处:可以一次性获取到表单中的所有数据。

2.serialize()函数示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <form id="f1">
        <input type="text" name="user_name">
        <input type="password" name="password">
        <button type="submit">提交</button>
    </form>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $('#f1').submit(function (e) {
                //阻止表单的提交和页面的跳转
                e.preventDefault()
                var data = $(this).serialize()
                console.log(data);
                //结果:username=用户名的值&password=密码的值
            })

注意:在使用 serialize()函数快速获取表单数据时,必须为每个表单元素添加name属性!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 09 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验