jquery ajax异步提交表单数据的方法


Posted in jQuery onOctober 27, 2017

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

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

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

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

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

html:form表单

<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 异步处理

$("#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表单需要在<form>标签里加入 enctype="multipart/form-data"属性 :

<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 异步处理

$("#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("请求失败")
     }
    })
    
 })

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

html:没有form表单

<div id="uploadFile">
 <input id="file" name="avatar" type="file"/>
 <button id="upload" data-url="/admin/upload" type="button">上传头像</button>
</div>

jquery异步处理:

$("#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])获取上传的文件,如果需上传多个文件,要在<input>标签加上属性multiple    
    $.ajax({ 
     type:'post',  
     url:targetUrl, 
     cache: false,    
     processData: false, 
     contentType: false, 
     data:data,  
     dataType:'json', 
     success:function(data){      
       alert('success');
     },
     error:function(){ 
      alert("请求失败")
     }
    })
    
 })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
Jquery EasyUI $.Parser
Jun 02 jQuery
jquery版轮播图效果和extend扩展
Jul 18 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
jQuery插件Validation表单验证详解
May 26 jQuery
jQuery分组选择器简单用法示例
Apr 04 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
jQuery实现轮播图效果
Nov 26 jQuery
jquery实现烟花效果(面向对象)
Mar 10 jQuery
jQuery 隐藏/显示效果函数用法实例分析
May 20 jQuery
jquery实现点击左右按钮切换图片
Jan 27 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 #jQuery
关于jQuery里prev()的简单操作代码
Oct 27 #jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 #jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 #jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 #jQuery
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 #jQuery
jquery select插件异步实时搜索实例代码
Oct 20 #jQuery
You might like
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
thinkphp分页集成实例
2017/07/24 PHP
Javascript玩转继承(三)
2014/05/08 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
js实现五星评价功能
2017/03/08 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
JavaScript十大取整方法实例教程
2020/12/03 Javascript
Python守护进程用法实例分析
2015/06/04 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
如何通过python计算圆周率PI
2020/11/11 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
自荐书模板
2013/12/15 职场文书
12岁生日演讲稿
2014/05/14 职场文书
银行转正自我鉴定
2014/09/29 职场文书
公司合作协议范文
2014/10/01 职场文书
骨干教师事迹材料
2014/12/17 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript