强大的jquery.form,非常优雅的解决了表单异步提交,文件无刷新上传的技术。
官方网站:http://malsup.com/jquery/form
一、html页面代码:
1、提交普通表单:
<form id="testForm" action="${ctx}/store/test" method="post"> <input type="text" name="name" value="pushaotao"/> <input type="text" name="age" value="30"/> <input class="btn btn-primary" type="submit" value="提交"/> </form>
js代码如下:
$(document).ready(function() { var options = { beforeSubmit: function(formData, jqForm, options){}, // pre-submit callback success: function(responseText, statusText, xhr, $form){ } // post-submit callback // other available options: //url: url // override for form's 'action' attribute //type: type // 'get' or 'post', override for form's 'method' attribute //dataType: null // 'xml', 'script', or 'json' (expected server response type) //clearForm: true // clear all form fields after successful submit //resetForm: true // reset the form after successful submit // $.ajax options can be used here too, for example: //timeout: 3000 }; // bind form using 'ajaxForm' $('#testForm').ajaxForm(options); });
2、提交上传文件,带进度显示的
<form id="fileForm" action="${ctx}/store/testFile" method="post" enctype="multipart/form-data"> <input type="file" name="file"><br> <input type="submit" value="Upload File to Server"> </form> <!--上传进度显示--> <div class="progress"> <div class="bar"></div > <div class="percent">0%</div > </div> <!--进度条样式--> <style> body { padding: 30px } form { display: block; margin: 20px auto; background: #eee; border-radius: 10px; padding: 15px } .progress { position:relative; width:400px; border: 1px solid #ddd; padding: 1px; border-radius: 3px; } .bar { background-color: #B4F5B4; width:0%; height:20px; border-radius: 3px; } .percent { position:absolute; display:inline-block; top:3px; left:48%; } </style>
js处理代码:
var bar = $('.bar'); var percent = $('.percent'); var status = $('#status'); $('#fileForm').ajaxForm({ dataType:"json", beforeSend: function() { status.empty(); var percentVal = '0%'; bar.width(percentVal) percent.html(percentVal); }, uploadProgress: function(event, position, total, percentComplete) { var percentVal = percentComplete + '%'; bar.width(percentVal) percent.html(percentVal); }, success: function(result) { console.log("result="); console.log(result); var percentVal = '100%'; bar.width(percentVal) percent.html(percentVal); }, complete: function(xhr) { console.log(xhr); status.html(xhr.responseText); } });
二、Java端代码,Java端使用的是Spring MVC,返回JSON数据,需要在方法前加注释:@ResponseBody
1、接受普通表单提交的数据
@RequestMapping(value = "test") @ResponseBody public Result test(String name,int age){ System.out.println(name); System.out.println(age); return new Result(100,name+" "+age); }
2、接收上传的文件并进行处理
@RequestMapping(value = "testFile") @ResponseBody public Result testFile(@RequestParam("file") MultipartFile file){ System.out.println(file.getContentType()+" "+file.getName()+" "+file.getOriginalFilename()); return new Result(100,file.getOriginalFilename()+" "+file.getSize()); }
相关推荐
jquery.form.js 无刷新异步提交表单js文件 /** * jQuery Form Plugin * version: 3.51.0-2014.06.20 * Requires jQuery v1.5 or later * Copyright (c) 2014 M. Alsup **/
使用jQuery.form插件,实现完美的表单异步提交
jQuery.form.js 异步提交表单 jQuery.form.js 异步提交表单jQuery.form.js 异步提交表单
jquery.form.min.js是一个异步提交表单的插件,使用该插件可以设置callback函数,并且页面不会跳转
jquery.form.js 利用ajaxSubmit无刷新异步上传导入Excel,无刷新提交表单 参考地址:http://blog.csdn.net/gorch/article/details/52493478
使用jquery.form.js插件,可以完美实现的表单异步提交哦,亲测可用。
jquery 表单插件 可以异步上传表单内容 不用直接构造
主要为大家详细介绍了jquery.form.js异步提交表单的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
jquery.form 3.5版本 表单ajax异步提交
基于jquery的异步表单提交【jquery-form.js,其中的Demo是基于SSH的,里面有Struts标签。欢迎下载!
Jquery.form.js可以非常简单的实现表单的异步提交,相对于同样是异步上传的ajaxfileupload,它能够实现文件跨域上传。
jquery.validate+jquery.form开发包,可以实现交互友好的form表单验证功能,及异步提交机制。
主要介绍了Jquery.Form 异步提交表单的简单实例。需要的朋友可以过来参考下,希望对大家有所帮助
表单异步上传,表单中可以支持文件和数据异步上传,
这个跨域异步上传功能我们借助了Jquery.form插件,它在异步表单方面很有成效,而跨域我们会在HTTP响应头上添加 access-control-allow-method,当然这个头标记只有IE10,火狐和谷歌上支持,对于IE10以下的浏览器来说...