element ui 拖拽上传 on-change不触发
1 <el-upload 2 class="upload-demo" 3 drag 4 multiple 5 action="" 6 :file-list = "fileList" 7 accept="application/vnd.ms-excel,application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" 8 :on-change="(file, fileList) => {handleChange(file, fileList)}" 9 :on-remove="(file) => {handleRemove(file)}" 10 :before-upload="handleBeforeUpload" 11 :auto-upload="false"> 12 <em class="el-icon-upload"></em> 13 <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> 14 <div class="el-upload__tip" slot="tip">只能上传xlsx/xls/pdf文件,且不超过3m</div> 15 </el-upload>
element - ui启用拖拽功能后,on-change事件不触发。
解决方法:
去掉类型限制 accept = "application/vnd.ms-excel,application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 改为在on-change回调里面验证
handleChange(file, fileList){ console.log('handleChange函数被触发'); // 判断file是否是新增 let isExist = false; isExist = this.fileList.some(item => { if(item.name == file.name) return true; }); if(!isExist) { // 检测文件类型 let fileType = file.name.substring(file.name.lastIndexOf('.')+1).toLowerCase(); let isFileTypeReady = fileType === 'xlsx' || fileType === 'xls' || fileType === 'pdf'; if(!isFileTypeReady) { // 文件类型不符合 fileList.some((item, index) => { if(item.uid == file.uid) { fileList.splice(index, 1); return true; } }) this.$message.error("上传文件只能是xlsx/xls/pdf格式"); return false; } else { // 其他校验 } } else { // 如果已经存在 fileList.some((item, index) => { if(item.uid == file.uid) { fileList.splice(index, 1); return true; } }); this.$message.error(`已经存在文件${file.name}, 请勿重复上传`); return false; } },
分类:
Vue
标签:
vue
, element-ui
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术