您的位置:首页 > Web前端 > BootStrap

关于bootstrap upload url传输参数问题

2016-03-09 09:48 567 查看
bootstrap upload配置如下:

$("#input-1").fileinput({//这里的id是input标签的id 

 
    uploadUrl: '<%=basePath%>/appr/upload/doFileUpload.do',
    uploadAsync: true,
    uploadExtraData:{
                 $("#b").val()
           },
       allowedFileExtensions : ['xls', 'xlsx'],//允许的文件类型  
       overwriteInitial: false,  
       maxFileSize: 1000,//文件的最大大小  
       maxFilesNum: 1,//最多文件数量  
       enctype: 'multipart/form-data',
       slugCallback: function(filename) { 
           return filename.replace('(', '_').replace(']', '_');  
       }
      
   });

首先,在一个隐藏的div中设置默认值:<input id="b" name="b" hidden="hidden" value="kkkkkk"/>

然后在处理时已经把上面的input中的值更改,在页面中可以看到,value已经改变,然后提交后,在后台获取到的值竟然是kkkkkk,猜想可能是bootstrap在某些操作下已经将要传输的值在我们赋值之前就已经存储好,而我们即使改变了input的value,传输的值也不会改变,所以,猜想,在提交时把值在付一遍,结果后台获取的值仍然是kkkkkk。

通过查找官方文档发现问题所在,bootstrap提交前有默认的方法,需要在这个方法里面将参数赋值,才能传输过去:

代码:

$('#input-1').on('filepreajax', function(event, previewId, index) {

batch = {"batchNo": $("#b").val()};

});

当然,在upload配置里面需要把参数传输换成:

uploadExtraData: function() {
               return batch;
           },

这样话就可以在后台获取到参数了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: