fileinput.js在上传文件时提交表单数据

来源:互联网 发布:淘宝茶具套装 编辑:程序博客网 时间:2024/06/08 15:31

fileinput.js是bootstrap下面的一款样式简洁且功能强大的文件上传的插件.

问题描述:

fileinput.js需要再页面加载时完成初始化,虽然可以通过 uploadExtraData参数接收附件意外的参数,但是直接使用uploadExtraData:{'id':id}是不行的,这些参数也必须是页面加载时就已经可以去到值的,但是现在有个需求是需要上传附件前先填写表单,然后添加附件,当点击确定按钮时表单数据与附件一起提交后台.fileinput的特性导致其无法获得表单中的参数.

解决:

1.在js中初始化是定义一个全局参数,json格式:例如:

var formdata = {};

2.再点击确定按钮时,将表单数据放到formdata中,如:

formdata = {                   "repay_amount":$("#repay_amount").val(),                   "pay_date":$('#date_start1').datetimebox('getValue')                  }

3.uploadExtraData使用函数的形式获取数据,将formdata作为uploadExtraData函数的返回值返回:

uploadExtraDatafunction(previewId, index) {   //额外参数 返回json数组      return formdata},
这样,在提交到后台时,表单数据会随fileinput的的请求一起提交.

个人猜测:uploadExtraData直接使用json格式参数时(例如uploadExtraData:{'id':id}),会在初始化是获取id的值,并且上传是不会检查id是否变化,但是uploadExtraData作为函数使用时,上传前会获取函数的返回值,然后一并带到后台(纯属猜测,有待验证).