jquery-form.js 实现图片和表单一同提交
2017-07-13 00:00
645 查看
项目中有一个注册功能,需要用户图片和表单信息一同提交到后台,直接使用ajax提交会报错误
而如果做成表单单独的图片提交又不太符合需求。
页面的内容:
这个时候可以考虑jquery-form.js这个插件,可以实现我们的需求。
前面的代码不变,引入该js文件后
这样,就可以实现图片和表单同步提交,
后台代码
上面的步骤已经完成了请求,如果你的页面不需要进行其他的验证,还有一种方式提交更加方便快捷。
再补充点其他的配置:
传统的ajax提交 var url = "${request.contextPath}/login/register.html" ; $.ajax({ url:url, type:"POST", data:$("#regform").serialize(), success: function (message) { alert(message); } });
而如果做成表单单独的图片提交又不太符合需求。
页面的内容:
<#--如果没有设置enctype="multipart/form-data",文件上传会报 The current request is not a multipart request--> <form action="" id="regform" method="post" enctype="multipart/form-data"> ...............表单和图片内容 <input type='button' class='btn btn-finish btn-fill btn-warning btn-wd btn-sm' name='finish' value='提交' onclick="register()"/> </form>
这个时候可以考虑jquery-form.js这个插件,可以实现我们的需求。
前面的代码不变,引入该js文件后
//注册 function register(){ <#--原始的ajax方式提交是失败的--> <#--$.ajax({--> <#--url:url,--> <#--type:"POST",--> <#--data:$("#regform").serialize(),--> <#--success: function (message) {--> <#--alert(message);--> <#--}--> <#--});--> var options = { url:'${request.contextPath}/login/xx.html?random='+new Date().getTime(), type:'POST', //beforeSubmit: showRequest, //提交前处理的函数,也可以在这里写,注意,这里接收的只能是false和true,且不能是函数的名带括号的 dataType:'json', //返回的数据类型:null、"xml"、"script"、"json"其中之一。 //resetForm: true, 表示如果表单提交成功是否进行重置 clearForm:false, //表示如果表单提交成功是否清除表单数据。 success:function(msg){ //提交完后执行的函数 if (msg.status == "error_1"){ alert("上传参数不完整"); } else if (msg.status == "error_2"){ alert("书籍封面未上传"); } else if (msg.status == "error_3"){ alert("书籍未上传"); } else if (msg.status == "error_4"){ alert("图片格式有误,请重新上传"); } else if (msg.status == "error_5"){ alert("图片文件太大,最多上传2M"); } else if (msg.status == "error_6"){ alert("书本格式有误,只能是txt与pdf格式。"); } else if (msg.status == "error_7"){ alert("书籍太大,最多上传20M"); } else if (msg.status == "error_8"){ alert("上传出错"); } else if (msg.status == "error_9"){ alert("上传出错_2"); } else if (msg.status == "success"){ alert("上传成功"); } else { alert("未知错误!"); } } }; $("#regform").ajaxSubmit(options); //使用ajaxForm()插件提交 }
这样,就可以实现图片和表单同步提交,
后台代码
@RequestMapping(value = "xx.html", method = RequestMethod.POST) public String register(HttpServletResponse response, HttpServletRequest request, ModelMap modelMap,@RequestParam(value = "wizard-picture", required = false)MultipartFile file){ System.out.println("1111111111111111111111111111111111111111111111111111111111111111"); System.out.println(file.getOriginalFilename()); return null; }
上面的步骤已经完成了请求,如果你的页面不需要进行其他的验证,还有一种方式提交更加方便快捷。
再补充点其他的配置:
var options = { target: '#output', //把服务器返回的内容放入id为output的元素中 beforeSubmit: showRequest, //提交前的回调函数 success: showResponse, //提交后的回调函数 //url: url, //默认是form的action, 如果申明,则会覆盖 //type: type, //默认是form的method(get or post),如果申明,则会覆盖 //dataType: null, //html(默认), xml, script, json...接受服务端返回的类型 //clearForm: true, //成功提交后,清除所有表单元素的值 //resetForm: true, //成功提交后,重置所有表单元素的值 timeout: 3000 //限制请求的时间,当请求大于3秒后,跳出请求 }
相关文章推荐
- 【文件上传】使用jquery.form.js来实现表单提交
- 利用jquery.form.js的ajaxSubmit实现不跳转提交表单数据
- 使用jquery.form.js实现form表单无刷新提交简单示例
- 使用jquery-form.js实现form表单的异步提交
- 使用jquery.form.js实现form表单无刷新提交简单示例
- 【jQuery】Jquery.form.js实现表单异步提交以及文件上传(带进度条)
- 用jquery.form.js 实现ajax提交含有上传文件和普通字段的表单
- 使用jquery.form.js 进行表单提交,通过回调函数实现页面互动功能。
- $.ajax 和 jquery.form.js实现表单异步提交
- jquery-form.js实现文件表单ajax提交回调
- Play FrameWork 使用jquery.form.js实现无刷新提交带文件的表单
- 使用jquery.form.js 进行表单提交,通过回调函数实现页面互动
- jquery.form.js+jquery.validation.js实现表单校验和提交
- jquery提交表单jquery.form.js
- Jquery通过Ajax方式来提交Form表单的具体实现
- ajax表单提交插件jquery.form.js的运用
- 使用jQuery.form插件,实现完美的表单异步提交
- 基于asp.net+ easyui框架,js提交图片,实现先上传图片再提交表单
- AJAX提交表单后要清空,否则再次提交原来的数据会认为重复提交,提交失败。使用ajaxSubmit 函数需要引入jquery.form.min.js 文件
- 利用jQuery Form插件实现表单的ajax提交(原创)