element自定義表單驗證上傳身份證正反面的實現(xiàn)
大概是這個樣式
兩個上傳組件寫在一個form-item里進行自定義表單驗證
每次驗證,通過判斷上傳組件綁定的值進行判斷,callback不同的提示錯誤
<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() { // 身份證正面驗證 var validateImgFront=(rule, value, callback)=>{//(關鍵代碼) if(this.personalForm.merIdenImgFront==''&&this.personalForm.merIdenImgBack==''){ return callback(new Error('附件不能為空')) }else if(this.personalForm.merIdenImgFront==''){ return callback(new Error('請上傳身份證正面')) }else if(this.personalForm.merIdenImgBack==''){ return callback(new Error('請上傳身份證背面')) }else{ callback() } }; return { uploadURL:'',//自己的上傳地址 personalForm:{ merIdenImgFront:'',//身份證正面 merIdenImgBack:'',//身份證反面 }, merIdenImgFront:'', merIdenImgBack:'', rules:{ // 身份證正反面 merIdenImgFront: [ {validator: validateImgFront, trigger: 'change'} ] } } }, methods:{ // 上傳身份證正面成功 handleAvatarSuccess1(response, file, fileList){ this.merIdenImgFront=file.url;//保存臨時圖片 this.personalForm.merIdenImgFront=response;//保存到提交表單 }, // 上傳身份證反面成功 handleAvatarSuccess2(response, file, fileList){ this.merIdenImgBack=file.url;//保存臨時圖片 this.personalForm.merIdenImgBack=response;//保存到提交表單 }, // 身份證表單驗證 idenImghandleChange(){ this.$refs.personalForm.validateField('merIdenImgFront');//對部分表單字段進行校驗的方法,也就是手動進行表單驗證(關鍵代碼) }, //提交 personalSubmit(formName){ this.$refs[formName].validate(async(valid) => { if (valid) { console.log('OJBK') } else { return false; } }); }, } } </script>
有一個問題是,點擊圖片上傳后,就已經(jīng)請求接口上傳了。
正常來說,應該是點擊提交后,才能進行上傳。懶得改了,大家懂就行.
到此這篇關于element自定義表單驗證上傳身份證正反面的實現(xiàn)的文章就介紹到這了,更多相關element表單驗證上傳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue中使用gantt-elastic實現(xiàn)可拖拽甘特圖的示例代碼
這篇文章主要介紹了vue中使用gantt-elastic實現(xiàn)可拖拽甘特圖,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07解決vue中無法動態(tài)修改jqgrid組件 url地址的問題
下面小編就為大家分享一篇解決vue中無法動態(tài)修改jqgrid組件 url地址的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03vue中window.addEventListener(‘scroll‘,?xx)失效的解決
這篇文章主要介紹了vue中window.addEventListener(‘scroll‘,?xx)失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Vue + element實現(xiàn)動態(tài)顯示后臺數(shù)據(jù)到options的操作方法
最近遇到一個需求需要實現(xiàn)selector選擇器中選項值options 數(shù)據(jù)的動態(tài)顯示,而非寫死的數(shù)據(jù),本文通過實例代碼給大家分享實現(xiàn)方法,感興趣的朋友一起看看吧2021-07-07Vue中filter使用及根據(jù)id刪除數(shù)組元素方式
這篇文章主要介紹了Vue中filter使用及根據(jù)id刪除數(shù)組元素方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03使用element-ui +Vue 解決 table 里包含表單驗證的問題
這篇文章主要介紹了使用element-ui +Vue 解決 table 里包含表單驗證的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07