element自定義表單驗證上傳身份證正反面的實現
大概是這個樣式

兩個上傳組件寫在一個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>有一個問題是,點擊圖片上傳后,就已經請求接口上傳了。
正常來說,應該是點擊提交后,才能進行上傳。懶得改了,大家懂就行.
到此這篇關于element自定義表單驗證上傳身份證正反面的實現的文章就介紹到這了,更多相關element表單驗證上傳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue中使用gantt-elastic實現可拖拽甘特圖的示例代碼
這篇文章主要介紹了vue中使用gantt-elastic實現可拖拽甘特圖,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下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實現動態(tài)顯示后臺數據到options的操作方法
最近遇到一個需求需要實現selector選擇器中選項值options 數據的動態(tài)顯示,而非寫死的數據,本文通過實例代碼給大家分享實現方法,感興趣的朋友一起看看吧2021-07-07
使用element-ui +Vue 解決 table 里包含表單驗證的問題
這篇文章主要介紹了使用element-ui +Vue 解決 table 里包含表單驗證的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

