热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery的ajax方法异步提交表单

使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的;处理表单的数据可以用serialize()方法进行序列化

使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的;

处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据包括文件流的话,就需要使用 FormData对象:

不带文件的表单数据使用:var data = $(form).serialize();

带文件的表单数据使用:   var  data = new FormData($(form)[0]);

一、不带文件的ajax提交数据:

html:form表单

1

2

3

4

5

<form id="addForm" action="${pageContext.request.contextPath}/admin/saveAdd" method="post">   

  <input type="text" name="name" placeholder="请输入名字" />

  <input type="password" name="password" placeholder="密码"/>

 form>

<button type="button" id="submitAdd">确认button>

jquery 异步处理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

$("#submitAdd").click(function(){

    

  var targetUrl = $("#addForm").attr("action");   

  var data = $("#addForm").serialize();    

   $.ajax({

    type:'post'

    url:targetUrl,

    cache: false,

    data:data, 

    dataType:'json',

    success:function(data){     

      alert('success');

    },

    error:function(){

     alert("请求失败")

    }

   })

    

})

 

二、带文件的ajax提交数据:

 html:form表单

 有文件上传的form表单需要在标签里加入 enctype="multipart/form-data"属性 :

1

2

3

4

5

6

<form id="addForm" action="${pageContext.request.contextPath}/admin/saveAdd" method="post"enctype=" multipart/form-data">   

  <input type="text" name="name" placeholder="请输入名字" />

  <input type="password" name="password" placeholder="密码"/>

  <input type="file" name="avatar" />

 form>

<button type="button" id="submitAdd">确认button>

 jquery 异步处理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

$("#submitAdd").click(function(){

     

   var targetUrl = $("#addForm").attr("action");   

   var data = new FormData($( "#addForm" )[0]);    

    $.ajax({

     type:'post'

     url:targetUrl,

     cache: false,    //上传文件不需缓存

     processData: false, //需设置为false。因为data值是FormData对象,不需要对数据做处理

     contentType: false, //需设置为false。因为是FormData对象,且已经声明了属性enctype="multipart/form-data"

     data:data, 

     dataType:'json',

     success:function(data){     

       alert('success');

     },

     error:function(){

      alert("请求失败")

     }

    })

     

 })

上面是用表单来构建FormData对象,如果没有表单处理方式如下:

html:没有form表单

1

2

3

4

<div id="uploadFile">

 <input id="file" name="avatar" type="file"/>

 <button id="upload" data-url="/admin/upload" type="button">上传头像button>

div>

jquery异步处理:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

$("#upload").click(function(){

     

   var targetUrl = $(this).attr("data-url");   

   var data = new FormData();

   //FormData对象加入参数

   data.append('file', $('#file')[0].files[0]); //'file' 为参数名,$('#file')[0].files[0])获取上传的文件,如果需上传多个文件,要在标签加上属性multiple   

    $.ajax({

     type:'post'

     url:targetUrl,

     cache: false,   

     processData: false,

     contentType: false,

     data:data, 

     dataType:'json',

     success:function(data){     

       alert('success');

     },

     error:function(){

      alert("请求失败")

     }

    })

     

 })


推荐阅读
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
author-avatar
dvs5453401
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有