场景:
1、处于新增页面;
2、表单基本数据与附件想一次提交;
3、需要异步处理;
处理逻辑:
1、先ajax提交基本信息;
2、返回数据ID;
3、携带ID并提交file文件上传;
4、提示上传成功(或处理成功)。
但是layui官网并没有讲解如何在此场景下的参数传递,那么会面临id无法传递的问题;
其实只要在before方法中,赋值参数即可。(this.data={'':''};)
layui 2.1.0
,before: function(obj){
layer.load(); //上传loading
this.data={'id':$("#docId").val()};
}
完整如下:
$.ajax({
url:"form/….",
data:params,
dataType:"json",
type:"POST",
success:function (data) {
$("#docId").val(data.data);
//成功之后执行附件上传
uploadInst.upload();
}
})
layui.use('upload', function() {
var $ = layui.jquery, upload = layui.upload;
//选完文件后不自动上传
uploadInst = upload.render({
elem: '#fileBtn'
,url: 'url/upload'
,auto: false
//,multiple: true
,bindAction: '#bindBtn'
,accept: 'file'
,done: function(res){
if(res.ret == 1){ //上传成功
layer.closeAll('loading'); //关闭loading
showMsg("上传成功!");
}else{
layer.closeAll('loading'); //关闭loading
showMsg("上传失败!");
}
}
,before: function(obj){
layer.load(); //上传loading
this.data={'id':$("#docId").val()};
}
,choose: function(obj){
}
,error: function(index, upload){
}
});
});