element自定義表單驗(yàn)證上傳身份證正反面的實(shí)現(xiàn)
大概是這個(gè)樣式
兩個(gè)上傳組件寫在一個(gè)form-item里進(jìn)行自定義表單驗(yàn)證
每次驗(yàn)證,通過判斷上傳組件綁定的值進(jìn)行判斷,callback不同的提示錯(cuò)誤
<template> <div> <el-form :model="personalForm" :rules="rules" ref="personalForm" label-width="180px"> <el-row> <el-col :span="24"> <el-form-item label="身份證證件照:" required style="" prop="merIdenImgFront"> <el-row type="flex" justify="space-between" class="uploadidcard"> <el-col :span="10"> <el-upload class="idCard1" :action="uploadURL" list-type="picture-card" :show-file-list="false" :on-success="handleAvatarSuccess1" accept=".JPG, .png, .jpeg" multiple="multiple" :on-change="idenImghandleChange" > <img v-if="merIdenImgFront" :src="merIdenImgFront" class="avatar" style="width:100%;height:100%"> </el-upload> </el-col> <el-col :span="10"> <el-upload class="idCard2" :action="uploadURL" list-type="picture-card" :show-file-list="false" :on-success="handleAvatarSuccess2" accept=".JPG, .png, .jpeg" multiple="multiple" :on-change="idenImghandleChange" > <img v-if="merIdenImgBack" :src="merIdenImgBack" class="avatar" style="width:100%;height:100%"> </el-upload> </el-col> </el-row> </el-form-item> </el-col> </el-row> <el-form-item label=""> <p style="color:#888">注:以上所需上傳照片僅支持JPEG、GIF、PNG格式的圖片,大小不超過2M。</p> </el-form-item> <el-form-item label=""> <div class="btn-wrap"> <button type="button" @click="personalSubmit('personalForm')">提交</button> </div> </el-form-item> </el-form> </div> </template> <script> export default { data() { // 身份證正面驗(yàn)證 var validateImgFront=(rule, value, callback)=>{//(關(guān)鍵代碼) if(this.personalForm.merIdenImgFront==''&&this.personalForm.merIdenImgBack==''){ return callback(new Error('附件不能為空')) }else if(this.personalForm.merIdenImgFront==''){ return callback(new Error('請(qǐng)上傳身份證正面')) }else if(this.personalForm.merIdenImgBack==''){ return callback(new Error('請(qǐng)上傳身份證背面')) }else{ callback() } }; return { uploadURL:'',//自己的上傳地址 personalForm:{ merIdenImgFront:'',//身份證正面 merIdenImgBack:'',//身份證反面 }, merIdenImgFront:'', merIdenImgBack:'', rules:{ // 身份證正反面 merIdenImgFront: [ {validator: validateImgFront, trigger: 'change'} ] } } }, methods:{ // 上傳身份證正面成功 handleAvatarSuccess1(response, file, fileList){ this.merIdenImgFront=file.url;//保存臨時(shí)圖片 this.personalForm.merIdenImgFront=response;//保存到提交表單 }, // 上傳身份證反面成功 handleAvatarSuccess2(response, file, fileList){ this.merIdenImgBack=file.url;//保存臨時(shí)圖片 this.personalForm.merIdenImgBack=response;//保存到提交表單 }, // 身份證表單驗(yàn)證 idenImghandleChange(){ this.$refs.personalForm.validateField('merIdenImgFront');//對(duì)部分表單字段進(jìn)行校驗(yàn)的方法,也就是手動(dòng)進(jìn)行表單驗(yàn)證(關(guān)鍵代碼) }, //提交 personalSubmit(formName){ this.$refs[formName].validate(async(valid) => { if (valid) { console.log('OJBK') } else { return false; } }); }, } } </script>
有一個(gè)問題是,點(diǎn)擊圖片上傳后,就已經(jīng)請(qǐng)求接口上傳了。
正常來說,應(yīng)該是點(diǎn)擊提交后,才能進(jìn)行上傳。懶得改了,大家懂就行.
到此這篇關(guān)于element自定義表單驗(yàn)證上傳身份證正反面的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)element表單驗(yàn)證上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中使用gantt-elastic實(shí)現(xiàn)可拖拽甘特圖的示例代碼
這篇文章主要介紹了vue中使用gantt-elastic實(shí)現(xiàn)可拖拽甘特圖,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07解決vue中無法動(dòng)態(tài)修改jqgrid組件 url地址的問題
下面小編就為大家分享一篇解決vue中無法動(dòng)態(tài)修改jqgrid組件 url地址的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03vue中window.addEventListener(‘scroll‘,?xx)失效的解決
這篇文章主要介紹了vue中window.addEventListener(‘scroll‘,?xx)失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Vue + element實(shí)現(xiàn)動(dòng)態(tài)顯示后臺(tái)數(shù)據(jù)到options的操作方法
最近遇到一個(gè)需求需要實(shí)現(xiàn)selector選擇器中選項(xiàng)值options 數(shù)據(jù)的動(dòng)態(tài)顯示,而非寫死的數(shù)據(jù),本文通過實(shí)例代碼給大家分享實(shí)現(xiàn)方法,感興趣的朋友一起看看吧2021-07-07Vue中filter使用及根據(jù)id刪除數(shù)組元素方式
這篇文章主要介紹了Vue中filter使用及根據(jù)id刪除數(shù)組元素方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟
隨著 Vite2 的發(fā)布并日趨穩(wěn)定,現(xiàn)在越來越多的項(xiàng)目開始嘗試使用它。本文我們就介紹了Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟,感興趣的可以了解一下2021-07-07使用element-ui +Vue 解決 table 里包含表單驗(yàn)證的問題
這篇文章主要介紹了使用element-ui +Vue 解決 table 里包含表單驗(yàn)證的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07