ElementUI中的上传文件表单验证

未上传文件

 

成功上传文件

如何实现以上效果:

1.首先el-uoload里面有很多函数钩子,on-change可以很好的反馈文件上传表示文件状态改变时的钩子,on-remove这个钩子就是当你列表移除这个文件的状态

2.el-form里面校验规则除了比较常用的validate方法外,可是还有变的方法的,这里我们使用validateField对部分表单字段进行校验的方法

代码实现:

<template>
	<el-form ref="exampleForm" :model="formModel" :rules="rules">
    	<el-form-item label="上传文件" prop="file">
        	<el-upload 
            	 class="upload-demo"
                 ref="upload"
                :action="fileUploadUrl"
                :auto-upload="false"
                :on-change="fileChange"
                :on-remove="fileRemove"
                :file-list="fileList"
                :limit="1"
                accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf">
                <el-button slot="trigger" type="primary" size="small">选择文件</el-button>
                <span slot="tip" style="margin-left: 20px">只能上传doc/docx/xls/xlsx/ppt/pptx/pdf文件</span>
    		</el-upload>
    	</el-form-item>
    </el-form>
</template>

<script>
export default {
    
    data () {
        return {
            formModel: {
                file: null
            },
            rules: {
                file: [
                    {
                        required: true,
                        message: '请至少选择一个产品标签',
                        trigger: 'change'
                    }
                ]
            },
            
        }
    },
    methods: {
        fileChange(uploadFile, fileList) {
            this.formModel.file = uploadFile
            
            if (fileList.length !== 0) {
                this.$refs.exampleForm.validateField('file')
            }
        },
        fileRemove(uploadFile, fileList) {
            if (fileList.length === 0) {
                this.formModel.file = null
                this.$refs.exampleForm.validateField('file')
            }
        }
    }
}
</script>

上面代码思路:

上传文件时,通过on-change钩子保存上传的文件,通过validateField函数对el-upload绑定的prop字段进行校验

文件列表里面的文件移除时,通过on-remove钩子如果fileList是空,设置相应的prop为空,然后同上通过validateField函函数对el-upload绑定的prop字段进行校验

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值