element自定義表單驗(yàn)證上傳身份證正反面的實(shí)現(xiàn)
大概是這個樣式

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

