因为项目中需要达到效果:前台点击按钮弹出文件选择框,选择文件确定之后,上传到后台对文件进行处理并给出响应信息。

尝试过使用$.post,$.ajsx,将表单序列化之后传到后台,但是后台并不能收到文件,查找资料后得知:

.serialize()序列化表单,提交按钮的值不会被序列化。另外,如果想要一个表单元素的值被序列化成字符串,这个元素必须含有 name 属性。此外,复选框(checkbox)和单选按钮(radio)(input类型为 "radio" 或 "checkbox")的值只有在被选中时才会被序列化。另外,文件选择元素的数据也不会被序列化。

后面使用了Jquery.form插件来完成了该功能。

前台:

1.导入jquery.min.js和jquery.form.min.js

<script type="text/javascript" src="${ctxStatic}/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="${ctxStatic}/js/jquery.form.min.js"></script>

2.设置按钮和隐藏表单

 <a class="btn btn-small btn-success" onclick="javascript:inportAdvertiserList();">导入</a>

<div style="display: none">
<form class="form-inline" id="uploadexcel" name="uploadexcel" action="" method="post" style="padding-bottom: 10px;" enctype="multipart/form-data">
<input type="file" name="excelFile" id="excelFile" onchange="javascript:submitexcelFile()">
</form>
</div>

这里按钮是超链接改变样式来实现按钮,普通按钮也可以。div默认位隐藏

3.对应的js函数

<script type="text/javascript">

 function inportAdvertiserList()
{
$("#excelFile").click();
} function submitexcelFile()
{ $("#uploadexcel").ajaxSubmit({
url: "${ctx}/advertiser/inportAdvertiserList",
type: "post",
enctype: 'multipart/form-data',
// iframe: true,
dataType:'json',
success: function (data)
{
//var msg = eval(data);
alert(data.errMsg);
window.location.reload();
},
error: function (data)
{
//var msg = eval(data);
alert("出错");//msg.errCode
}
})
} </script>

这里注意Id选择器和input的name(后台取值会用到),url位后台地址

后台:

@RequestMapping(value = {"inportAdvertiserList"})
public
@ResponseBody
ErrorMsg inportAdvertiserList(MultipartFile excelFile, ModelAndView model,
HttpServletRequest request, HttpServletResponse response)
{
String[] tableHander = {"平台", "账户ID", "账户名称", "是否ROI账户", "客户名称", "销售人员"};
String[] fileNames = {"platformName", "advertiser_id", "corporation_name", "roi", "customerName", "solder.name"};
List<Object> list = null;
list = ExcelUtil.readExcel(excelFile, Advertiser.class, tableHander, fileNames);
}

后台是ssm构建的,

@RequestMapping(value = {"inportAdvertiserList"})用来设置请求url,
 @ResponseBody用来标记返回指,可以将返回值转换成json数据返回(需要导入相关包)。
后台可以MultipartFile excelFile来取到前台input传过来的file 这次项目中是需要取到前台传过来的excel并解析其中的数据,将其转换为对象存入数据库,部分数据公司相关,后面就不写了。

异步提交表单插件jquery.form.min.js的使用实例的更多相关文章

  1. jquery提交form表单插件jquery.form.js

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Form表单插件jquery.form.js

    常常使用到这个插件,但是老忘记怎么使用,现在对大家写的进行一定的整合. 使用插件实例: 一般的使用方法 <!-- 引入jquery文件 --> <script src="h ...

  3. jQuery插件 -- Form表单插件jquery.form.js<转>

    jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmi ...

  4. (转)jQuery插件 -- Form表单插件jquery.form.js

    beforeSubmit: validate function validate(formData, jqForm, options) { //在这里对表单进行验证,如果不符合规则,将返回false来 ...

  5. jquery-jquery异步提交表单插件

    使用jquery.form可以异步提交文件或者表单,下面的代码演示了如何提交文件 http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js <s ...

  6. jQuery插件 -- Form表单插件jquery.form.js

    http://blog.csdn.net/zzq58157383/article/details/7718956 http://my.oschina.net/i33/blog/77250

  7. jQuery.Form.js 异步提交表单使用总结

    jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交. 第一步:引入jQuery与jQuery.Form.js <script ...

  8. AJAX提交表单后要清空,否则再次提交原来的数据会认为重复提交,提交失败。使用ajaxSubmit 函数需要引入jquery.form.min.js 文件

    <script src="../../Scripts/js/jquery.form.min.js" type="text/javascript">& ...

  9. 雷林鹏分享:jQuery EasyUI 表单 - 创建异步提交表单

    jQuery EasyUI 表单 - 创建异步提交表单 本教程向您展示如何通过 easyui 提交一个表单(Form).我们创建一个带有 name.email 和 phone 字段的表单.通过使用 e ...

随机推荐

  1. SpringMVC的@RequestParam

    以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数 下面我们来区分一下加与不加的区别 这里有两种写法 @Reque ...

  2. js-jquery-003-条形码-二维码【QR码】

    一.基本使用 插件地址:https://github.com/jeromeetienne/jquery-qrcode 1.首先在页面中加入jquery库文件和qrcode插件. <script ...

  3. Html5游戏开发-145行代码完成一个RPG小Demo

    lufy前辈写过<[代码艺术]17行代码的贪吃蛇小游戏>一文,忽悠了不少求知的兄弟进去阅读,阅读量当然是相当的大.今天我不仿也搞一个这样的教程,目地不在于忽悠人,而在于帮助他人. 先看de ...

  4. Spark应用提交

    在 Spark 的 bin 目录中的 spark-submit 脚本用与在集群上启动应用程序.它可以通过一个统一的接口使用所有 Spark 支持的 Cluster Manager,所以您不需要专门的为 ...

  5. 使用curl发送post或者get数据

    一. 使用curl可以仿造http的请求,向目标服务器或者是目标IP发送数据,进行操作. (1).使用php操作curl向某个接口上发送GET请求: 下面是写的一个比较简单的请求方式请求数据,传入的参 ...

  6. mysql lock

    http://blog.chinaunix.net/uid-21505614-id-289450.html http://bbs.csdn.net/topics/340127237 http://ww ...

  7. WEB前端研发工程师编程能力成长之路(2)

    四.[入微] 最强解决方案.你能够走在需求的前面,将当前需求里有的.没有直接提出来的.现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综合考虑,给出最优方案.以一招胜万招. var s ...

  8. SQL Server OBJECTPROPERTY使用方法

    OBJECTPROPERTY 返回有关当前数据库中的模式作用域对象的信息.此函数不能用于不是模式范围的对象,例如数据定义语言(DDL)触发器和事件通知. OBJECTPROPERTY 语法: OBJE ...

  9. kubernetes上安装MongoDB-3.6.5集群副本集方式

    一.安装部署: 想直接一步创建集群的小伙伴直接按以下步骤安装(再往后是记录自己出过的错): 1.生成docker镜像: docker build -t 144.202.127.156/library/ ...

  10. idea构建一个简单的maven_web项目

    软件说明 好啦,开始创建mave的web项目啦!