ajax提交的表单有两种情况:

第一种:input type类型没有file上传文件类型的表单

第二种:input type类型有file上传文件类型的表单

之所以分为两种:是因为原生ajax是不能提交文件的,因为ajax与后台的通信是通过字符串的.

第一种无file类型表单的ajax上传方式:

以下写的JQuery语法的ajax:

导jQuery包

<script src="jQuery.1.8.3.js" type="text/javascript"></script>

$.ajax({
url:"<%=request.getContextPath()%>/UserServlet?operator=webLoadPhoto",
type:"post",
data: $("#form1").serialize(),
success:function(data) {

}

error:function(data){

}
})

参数解释:

  1. url:发送请求的地址
  2. type:请求的方式  get/post
  3. data:绑定表单id为form1,   serialize()方法表示将这个表单序列化
  4. success : function(){}:   ajax提交成功后的回调函数
  5. error:function(){}:ajax提交失败后的回调函数

上面这种是最简单的无file类型的表单提交,网上还有其他写法,如果想要了解其他写法的话我后续会写上

第二种有file类型表单的ajax上传方式:

由于上传file类型的表单步骤虽然多,但是仔细看是不难的!建议大家有耐心的去看我的解说

先从网上下载一个jQuery.form.js提交表单的插件

地址:https://plugins.jquery.com/form/

导jQuery包

<script src="jQuery.1.8.3.js" type="text/javascript"></script>

<script src="jQuery.Form.js" type="text/javascript"></script>

$("#upload").click(function(){   //某个按钮的点击事件

document.getElementById("form1").encoding="multipart/form-data";

//  注意上面第一点:file类型表单需要把表单的 enctype属性值设为   enctype="multipart/form-data"   让后台知道这是一个二进制表单提交类型.

有时候这个enctype会由于一些问题导致后台识别不了是二进制表单提交,如果有这种情况,enctype="multipart/form-data" 换成   encoding="multipart/form-data" 或者两个一起写上去

var option = {
url :"<%=request.getContextPath()%>/UserServlet?operator=webLoadPhoto",
type :"post",
clearForm:false,
resetForm:false,
success : function(data) {
alert('上传成功!');

}
};

})
$("#form1").ajaxSubmit(option);
return false;

)}

参数解释:

    var option是一个JavaScript对象的定义

  1. url:发送请求的地址
  2. type:请求的方式  get/post
  3. clearForm:表示提交ajax后是否清空表单字面值    (input type=text     框这里有你输入的值例如  11111,如果clearForm值为true,那么ajax提交后会清空框上的值11111)
  4. resetForm:表示提交ajax后是否重置表单值      (input type=text     框这里有你输入的值例如  11111,如果resetForm值为true,那么ajax提交后会清空 框上的值11111,同时重置成刚加载表单时候的input type=text的样子。)
  5. 第三第四点注意区别!
  6. success : function(){}:   ajax提交成功后的回调函数
  7. error:function(){}:ajax提交失败后的回调函数
  8. $("#form1").ajaxSubmit(option); 是jQuery.form.js的一个ajax提交表单的方法,它可以优秀的把含有file类型的表单提交给后台

  ps:reset是重置成最初状态,最初状态是可能有默认值的
          clear是清空form控件的值

关于ajax提交表单的一些实例及遇到的问题和解决办法的更多相关文章

  1. Jquery ajax提交表单几种方法详解

    [导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的 ...

  2. Jquery ajax提交表单几种方法

    在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. ...

  3. Validator验证Ajax提交表单的方法

    Validator验证Ajax提交表单的方法 转自:http://hunanpengdake.iteye.com/blog/1671360 当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form ...

  4. lavarel框架中如何使用ajax提交表单

    开门见山,因为laravel以post形式提交数据时候需要加{{csrf_field()}}防止跨站攻击,所以当你用ajax提交表单时候自然也要加 在网上看了很多的解决方式,我是用下面这种方法解决的: ...

  5. ajax提交表单序列化(serialize())数据

    知识点: $("#form").serialize();将表单数据序列化为标准URL编码文本字符串(key1=value1&key2=value2…). 以下用一个例子来演 ...

  6. jquery实现ajax提交表单

    一般情况下,我们提交form表单采用的是submit的方法,典型的场景如下. <form id="thisForm" method="post" acti ...

  7. ajax提交表单、ajax实现文件上传

    ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用 ...

  8. Ajax提交表单初接触

    <!doctype html> <html class="no-js"> <head> <meta charset="utf-8 ...

  9. KindEditor:Ajax提交表单时获取不到HTML内容

    当用Ajax提交表单时,KindEditor的内容获取不到,HTML数据获取不了 原因:当ajax提交时,KindEdito的HTML数据还没有同步到表单中来,那怎么去获取HTML数据呢? ----- ...

随机推荐

  1. hdu 4722 Good Numbers 规律 数位dp

    #include<iostream> #include<cstring> #include<cstdio> #include<vector> #incl ...

  2. Docker笔记(十):使用Docker来搭建一套ELK日志分析系统

    一段时间没关注ELK(elasticsearch —— 搜索引擎,可用于存储.索引日志, logstash —— 可用于日志传输.转换,kibana —— WebUI,将日志可视化),发现最新版已到7 ...

  3. 【Offer】[13] 【机器人的运动范围】

    题目描述 思路分析 Java代码 代码链接 题目描述 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和 ...

  4. Java 中的array数组总结之一

    数组:是一个将同种类型的数据存储在存储单元中. 可以用三种方式声明数组: 1.数据类型 标识符[]; int mothDays[]; 2.数据类型 标识符[] = new 数据类型[大小]; int ...

  5. springmvc两种非注解的处理器映射器

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. 小程序组件 scroll-view 横向滚动条无效

    小程序组件 scroll-view 中分别有上下竖向滑动和左右横向滑动,在这次项目中刚好需要用到横向滑动,但在测试过程中发现横向滑动没有了效果(静止在那里没移动过,并且换行了),经调试发现: 1.sc ...

  7. Qt 模拟一个导航定位系统

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/lihuidashen/p/115397 ...

  8. NTP服务器实现

    时间服务器是一种计算机网络仪器,它从参考时钟获取实际时间,再利用计算机网络把时间信息传递给用户.虽然还有一些比较少用或过时的协议仍然在使用,但现时最重要及广泛使用,作为时间信息发送和同步化的协议是网络 ...

  9. 花果山第一届猿类分级考试实录--Talk is cheap,Show me the code

    本故事纯属虚构,如有雷同,纯属巧合! 故事背景 悟空师徒4人取经回来后,因不耐收到管教,就回到了花果山,带领一帮猴子猴孙逍遥自在的过日子,奈何因在阎王殿里将生死薄中的猴子猴孙的名字都划去了,猴子猴孙是 ...

  10. Mybatis值ResultMap的使用详解

    Mybatis的定义 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...