引用layui之后,用到上傳excel文件然后以表格形式回顯。
需求是在點擊上傳的按鈕之前需要進行一個表單的驗證(才能掉后台接口)
方法新加一個按鈕來作為點擊上傳的按鈕addBtn(真正的上傳的按鈕uploadBtn需要隱藏起來)然后讓addBtn覆蓋upload上面(可以用層級z-index來控制)當點擊addBtn是(前提表單驗證進行之后),主動喚醒uploadBtn的點擊事件
/* 新增樣式 */ .box { float: left; position: relative; } .box button { position: absolute; } #commit { z-index: 99; }
<div class="box"> <button class="layui-btn wordBtn" data-type="reload" id="commit"> 校驗(import) </button> <button class="layui-btn wordBtn hide" data-type="reload" id="upload" lay-filter="import"> import </button> </div>
//隱藏按鈕 報表上傳 $('#commit').on('click', function () { var val = $("#expressType").val(); if (val) { console.log('喚起點擊') $('#upload').click(); } else { layer.alert("請選擇服務類型", { icon: 2, title: '提示' }); } }) var uploadInst = upload.render({ elem: "#upload", //綁定元素 auto: true, accept: 'file', url: 'url', //上傳接口 before: function (obj) { loadingIndex = layer.msg('文件上傳中...', { icon: 16, shade: 0.01, time: 0 }) this.data={//傳給后台的參數 'type':$("#expressType").val(), 'expressType':tabType } },
done: function (res) {
console.log(res)
let url = 'url';
if (res.code == '200') {
layer.close(loadingIndex);
layer.alert(res.message);
//上傳完畢回調
if (tabType == 2) {
tableDFun(url,'')
} else {
tableDS(url,'')
}
} else {
layer.alert(res.message);
}
},
error: function () {
//請求異常回調
layer.alert("上傳錯誤", {
icon: 2, title: '提示'
});
}
});