【概】有个layui 1.09版本的前端项目需要更改,使用upload组件POST传递验证参数到后台,layui不同版本之间使用方法不同,也不方便更新到最新版,故记录此方法
【不同版本的方法】
1.09 版核心方法,就是通过input赋值传递,写在upload:before里
var data={
verify:verify
}
setdata("#upload",data);
*******/
//传参
function setdata(input,data){
var item=[];
$.each(data,function(k,v){
item.push('<input type="hidden" name="'+k+'" value="'+v+'">');
})
$(input).after(item.join(''));
}
layui.upload({
url: '../upload/../excel/import.php?method=import_client&upload=true&token='+token//?upload=true&token='+token+"&firmid="+firmid
,elem: '#upload' //指定原始元素,默认直接查找class="layui-upload-file"
,method: 'post' //上传接口的http类型
,before: function(e) {
index = parent.layer.load(0,{shade: [0.7, '#393D49']}, {shadeClose: true});
var data={
verify:verify
}
setdata("#upload",data);
}
,success: function(res){
parent.frames[lastIframe].refresh(res.status);
parent.layer.msg(res.msg);
parent.layer.close(index);
index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //执行关闭
}
});
2.0 版本优化了以下,直接在before内赋值即可
before: function(obj){
layer.load(); //上传loading
this.data={'xxx':'xxx'};
}