el-form表單中的el-upload的文件表單驗證

el-form表單中的el-upload的文件表單驗證

常規el-form中的表單驗證:

el-form的el-form-item中:

<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"><el-form-item label="活動名稱" prop="name"><el-input v-model="ruleForm.name"></el-input></el-form-item><el-form-item label="活動區域" prop="region"><el-select v-model="ruleForm.region" placeholder="請選擇活動區域"><el-option label="區域一" value="shanghai"></el-option><el-option label="區域二" value="beijing"></el-option></el-select></el-form-item>...
</el-form>

在el-form中用model綁定ruleForm表單,里面存有所有表頭數據,如:

ruleForm: {name: '',region: '',...
},

rules綁定的是rules,是表單校驗的規則,如:

rules: {name: [{ required: true, message: '請輸入活動名稱', trigger: 'blur' },{ min: 3, max: 5, message: '長度在 3 到 5 個字符', trigger: 'blur' }],region: [{ required: true, message: '請選擇活動區域', trigger: 'change' }],...
}

ruleForm綁定的是el-form表單,便于之后的表單校驗

submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {alert('submit!');} else {console.log('error submit!!');return false;}});
}

validate:對整個表單進行校驗的方法,參數為一個回調函數。該回調函數會在校驗結束后被調用,并傳入兩個參數:是否校驗成功和未通過校驗的字段。若不傳入回調函數,則會返回一個 promise

文件上傳的表單驗證:

遇到的問題:比如想要對上傳的文件進行表單驗證,用到的是el-upload組件,想要在提交的時候,若上傳的文件為空則會顯示提示文案,若有上傳的文件則表單可正常提交。現在的問題是:文件上傳后也會提示文案,提示我們文件未提交,但實際上文件已經上傳了。

即:表單中的文件上傳,在未選擇文件之前,對表單進行校驗,提示:文件未上傳,需上傳文件;選擇文件上傳,對表單進行校驗,依舊提示:文件未上傳,需上傳文件

期望:在未選擇文件之前,對表單進行校驗,提示文件未上傳,需上傳文件;選擇文件上傳,對表單進行校驗,應該通過校驗

解決不了:

解決思路:

  1. el-upload鉤子:

    • on-change:文件狀態改變時的鉤子

    • on-remove:移除文件時的鉤子

  2. el-form的表單校驗方法:

    • validateField:用于對部分表單字段進行表單校驗

    • validate:表單校驗(統一校驗)

解決方法:

  1. 上傳文件時

    • 在el-upload的on-change鉤子函數中保存上傳的文件

    • 調用el-form的validateField函數對el-upload的prop字段進行校驗

  2. 移除文件時

    • 在el-upload的on-remove鉤子函數中更新文件列表

    • 調用el-form的validateField函數對el-upload綁定的prop字段進行校驗

正確方法:

給文件上傳的字段的表單校驗設置為自定義校驗,就可以了!

returnWorkNotice: [{ validator: validateReturnWorkNotice, trigger: 'blur' }]
let validateReturnWorkNotice = (rule, value, callback) => {// console.log('this.tabledata1.returnWorkNotice', this.tabledata1.returnWorkNotice);if (!this.tabledata1.returnWorkNotice || this.tabledata1.returnWorkNotice.length === 0) {callback(new Error('附件不能為空'));} else {callback();}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38431.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38431.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38431.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uni-app的來龍去脈,技術要點及技術難點,語法結構及應用場景,其實前端也很難,頂級的前端比后端都重要,感覺第一,理性第二

Uni-App 的來龍去脈 Uni-App 是由 DCloud 推出的一款跨平臺前端框架&#xff0c;用于開發一次性代碼并可以同時在 iOS、Android、H5、微信小程序、支付寶小程序、百度小程序、字節跳動小程序和 QQ 小程序等多個平臺上運行的應用。Uni-App 的出現應對了移動互聯網時代多平臺應用…

解決Install/Remove of the Service Denied報錯

1、問題概述&#xff1f; 在Windows系統中安裝MySQL5.7.43的時候&#xff0c;運行mysqld install命令提示報錯&#xff1a;Install/Remove of the Service Denied 意思是&#xff1a;安裝/刪除服務被拒絕 問題原因所在&#xff1a;就是你當前的權限不夠&#xff0c;以管理員…

Linux【環境 CenOS7】部分軟件安裝鏈接整理

優質博文&#xff1a;IT-BLOG-CN 一、開啟網絡 【問題】&#xff1a; 剛安裝完CentOS&#xff0c;當ping www.baidu.com時&#xff0c;ping不通&#xff1b; 【解決】&#xff1a; 進入cd /etc/sysconfig/network-scripts/我這里修改的是ifcfg-ens33文件&#xff0c;將ONBOOT…

p2p、分布式,區塊鏈筆記:試用ZeroTier組網

ZeroTier 是一種用于創建和管理虛擬局域網&#xff08;Virtual Local Area Network&#xff0c;VLAN&#xff09;的軟件定義網絡&#xff08;SDN&#xff09;解決方案。它可以通過互聯網將多個設備安全地連接在一起&#xff0c;就像它們在同一個本地網絡上一樣。主要開發語言為…

hadoop 3.X 分布式HA集成Kerbos(保姆級教程)

前提&#xff1a;先安裝Kerbos 1、創建keytab目錄 在每臺機器上上提前創建好對應的kertab目錄 [hadooptv3-hadoop-01 ~]$ sudo mkdir -p /BigData/run/hadoop/keytab/ [hadooptv3-hadoop-01 ~]$ sudo mkdir -p /opt/security/ [hadooptv3-hadoop-01 ~]$ sudo chown hadoop:had…

【Python從入門到進階】59、Pandas庫中Series對象的操作(二)

接上篇《58、Pandas庫中Series對象的操作(一)》 上一篇我們講解了Pandas庫中Series對象的基本概念、對象創建和操作&#xff0c;本篇我們來繼續學習Series對象的運算、函數應用、時間序列操作&#xff0c;以及Series的案例實踐。 一、Series對象的運算 1. 數值型數據的算術運…

1、音視頻解封裝流程---解復用

對于一個視頻文件(mp4格式/flv格式)&#xff0c;audio_pkt或者video_pkt是其最基本的數據單元&#xff0c;即視頻文件是由獨立的視頻編碼包或者音頻編碼包組成的。 解復用就是從視頻文件中把視頻包/音頻包單獨讀取出來保存成獨立文件&#xff0c;那么如何得知packet是視頻包還是…

指針賦值與引用傳遞:C語言的基礎知識與實踐技巧

指針賦值與引用傳遞&#xff1a;C語言的基礎知識與實踐技巧 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; **1. **引言 在C語言中&#xff0c;指針是一種強…

Vue CLI VS Vite

Vue CLI與Vite區別&#xff1a; Vue CLI與Vite之間存在明顯的區別&#xff0c;這些區別主要體現在實現原理、優化策略、開發環境速度、構建速度、依賴關系分析和插件系統等方面。以下是關于Vue CLI和Vite區別的詳細分析&#xff1a; 實現原理&#xff1a; Vue CLI&#xff1a…

【Spring Boot】Spring Boot簡介

1、概述 Spring Boot是一個用于創建獨立、生產級別的基于Spring的應用程序的開發框架。旨在簡化Spring應用的初始搭建和開發過程。它通過自動配置和大量默認配置&#xff0c;使得開發者能夠快速搭建一個獨立的Spring應用&#xff0c;無需進行大量的手動配置。 2、主要特點 快…

【一篇搞懂】操作系統期末大題:進程同步與互斥 PV操作

文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;??????題型一&#xff1a;利用信號量實現前驅關系題型二&#xff1a;利用信號量實現資源同步與互斥 一、前言&#x1f680;&#x1f680;&#x1f680; 本文簡介&#xff1a;這是一篇基于b…

無人機遠程控制:北斗短報文技術詳解

無人機&#xff08;UAV&#xff09;技術的快速發展和應用&#xff0c;使得遠程控制成為了一項關鍵技術。無人機遠程控制涉及無線通信、數據處理等多個方面&#xff0c;其中北斗短報文技術以其獨特的優勢&#xff0c;在無人機遠程控制領域發揮著重要作用。本文將詳細解析無人機遠…

2024-06-26 base SAS programming 學習筆記6(proc report)

proc report可以生成報表&#xff0c;基本格式&#xff1a; proc report data options; (options 可以是windows/WD表示將結果輸出至單獨的報表窗口&#xff0c;或者nowindows/nowd將結果輸出至HTML結果窗口) column variables ;(篩選待輸出的變量&#xff0c;變量名與變量名之…

09_計算機網絡模型

目錄 OSI/RM七層模型 OSI/RM七層模型 各層介紹及硬件設備 傳輸介質 TCP/IP協議簇 網絡層協議 傳輸層協議 應用層協議 完整URL的組成 IP地址表示與計算 分類地址格式 子網劃分和超網聚合 無分類編址 特殊含義的IP地址 IPv6協議 過渡技術 OSI/RM七層模型 OSI/RM七…

區間動態規劃——最長回文子序列長度(C++)

把夜熬成粥&#xff0c;然后喝了它。 ——2024年7月1日 書接上回&#xff1a;區間動態規劃——最長回文子串&#xff08;C&#xff09;-CSDN博客&#xff0c;大家有想到解決辦法嗎&#xff1f; 題目描述 給定一個字符串s&#xff08;s僅由數字和英文大小寫字母組成&#xff0…

微積分-導數3(微分法則)

常見函數的導數 常量函數的導數 d d x ( c ) 0 \frac{d}{dx}(c) 0 dxd?(c)0 常量函數的圖像是一條水平線 y c y c yc&#xff0c;它的斜率為0&#xff0c;所以我們必須有 f ′ ( x ) 0 f(x) 0 f′(x)0。從導數的定義來看&#xff0c;證明也很簡單&#xff1a; f ′ …

在node.js環境中使用web服務器http-server運行html靜態文件

http-server http-server是一個超輕量級web服務器&#xff0c;它可以將任何一個文件夾當作服務器的目錄供自己使用。 當我們想要在服務器運行一些代碼&#xff0c;但是又不會配置服務器的時候&#xff0c;就可以使用http-server就可以搞定了。 使用方法 因為http-server需要…

Linux Vim 進階教程

Linux Vim 進階教程 1. 簡介 Vim&#xff08;Vi IMproved&#xff09;是一款功能強大的文本編輯器&#xff0c;廣泛應用于Linux和Unix系統中。本教程將深入探討Vim的高級功能和技巧&#xff0c;幫助您提升編輯效率和使用體驗。 2. Vim 配置和插件管理 2.1 配置文件 .vimrc …

QT拖放事件之三:自定義拖放操作-利用QDrag來拖動完成數據的傳輸

1、運行效果 1)Qt::MoveAction 2)Qt::CopyAction 2、源碼 #include "Widget.h" #include "ui_Widget.h" #include "common.h"

二級建造師(建筑工程專業)考試題庫,高效備考!!!

16.在施工合同履行期間發生的變更事項中&#xff0c;屬于工程變更的是&#xff08;&#xff09;。 A.質量要求變更 B.分包單位變更 C.合同價款變更 D.相關法規變更 答案&#xff1a;A 解析&#xff1a;工程變更一般是指在工程施工過程中&#xff0c;根據合同約定對施工的…