element-plus中,表單校驗的使用

目錄

一.案例1:給下面的表單添加校驗

1.目的要求

2.步驟

①給需要校驗的el-form-item項,添加prop屬性

②定義一個表單校驗對象,里面存放了每一個prop的檢驗規則

③給el-form組件,添加:rules屬性

④給el-form組件,添加ref屬性,以便后面獲取表單實例

⑤在代碼中,定義該表單實例

⑥點擊【確認添加】按鈕時,通過表單實例查看表單是否符合校驗規則。如果符合,則向后端發送請求;如果不符合,則不發送請求并提示相關信息

3.效果展示

4.注意事項

5.結合已寫好的后端接口,展示整體效果

二.上述例子存在的問題

1.當取消對話框后,再打開對話框,表單的校驗狀態依然存在

2.對于上述案例的金額一項,校驗不充分

結語


一.案例1:給下面的表單添加校驗

1.目的要求

2.步驟

①給需要校驗的el-form-item項,添加prop屬性

②定義一個表單校驗對象,里面存放了每一個prop的檢驗規則

//表單檢驗規則  
const rules = ref({name: [{ required: true, message: '請輸入醫技項目名稱', trigger: 'blur' },//類型為輸入框時,觸發校驗的時機應該是blur:失去焦點],unit: [{ required: true, message: '請選擇單位', trigger: 'change' },//類型為選擇框時,觸發校驗的時機應該是change:選項改變],price: [{ required: true, message: '請輸入單價', trigger: 'blur' },],expTypeId: [{ required: true, message: '請選擇費用類型', trigger: 'change' },],deptId: [{ required: true, message: '請選擇執行科室', trigger: 'change' },],recordType: [{ required: true, message: '請選擇項目類型', trigger: 'change' },],}
)

③給el-form組件,添加:rules屬性

④給el-form組件,添加ref屬性,以便后面獲取表單實例

⑤在代碼中,定義該表單實例

//獲取表單組件的引用
const itemDtoRef = ref();//該變量名必須等于el-form的ref屬性值,才能獲取到表單實例。

⑥點擊【確認添加】按鈕時,通過表單實例查看表單是否符合校驗規則。如果符合,則向后端發送請求;如果不符合,則不發送請求并提示相關信息

3.效果展示

校驗沒通過時:

校驗通過時:

4.注意事項

①prop如何命名?【十分重要】

el-form-item的prop屬性,應當依據要提交的對象來決定,如下:

②表單實例(即表單的ref屬性值對應的對象,此處為itemDtoRef?)有很多方法,如下:

5.結合已寫好的后端接口,展示整體效果

將后端邏輯相關代碼,添加到下面的地方:

展示完整效果:

二.上述例子存在的問題

1.當取消對話框后,再打開對話框,表單的校驗狀態依然存在

問題如下:

解決方案:在對話框的關閉事件中,使用表單實例的clearValidate方法,將表單的校驗狀態清空即可。如下:

展示改進后的效果:

2.對于上述案例的金額一項,校驗不充分

問題描述:對于上述案例中,我們只校驗了【單價】是否為空,顯然這是不充分的,而是還需要驗證單價:是否是數字、不能是負數、不能以0開頭、最多有兩位小數。

實現步驟:

①自定義【單價】的校驗規則

//自定義校驗規則(校驗【單價】)
const validateAmount = (rule, value, callback) => {if (value === '' || value === undefined || value === null) {callback(new Error('金額不能為空'));return;}// 校驗是否為數字if (isNaN(value)) {callback(new Error('金額必須為數字'));return;}// 校驗是否為負數if (Number(value) < 0) {callback(new Error('金額不能為負數'));return;}// 校驗是否以 0 開頭(除非金額為 0)if (value !== '0' && value.startsWith('0')) {callback(new Error('金額不能以 0 開頭'));return;}// 校驗小數位數(如最多 2 位小數)const decimalPart = value.toString().split('.')[1];if (decimalPart && decimalPart.length > 2) {callback(new Error('金額最多保留 2 位小數'));return;}// 校驗通過callback();
};

?②將上述【單價】的自定義校驗規則,添加到表單校驗規則rules中的單價屬性中。

效果展示:

結語

以上就是表單校驗的基本流程介紹,還算比較詳細。

若有不懂的地方,可以私信博主(有空就會回復ou)。

喜歡本篇文章的話,可以留個免費的關注~~

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

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

相關文章

團體設計程序天梯賽L2-025 # 分而治之

文章目錄 題目解讀輸入格式輸出格式 思路Ac Code參考 題目解讀 在戰爭中&#xff0c;我們希望首先攻下敵方的部分城市&#xff0c;使其剩余的城市變成孤立無援&#xff0c;然后再分頭各個擊破。為此參謀部提供了若干打擊方案。本題就請你編寫程序&#xff0c;判斷每個方案的可…

Arduino示例代碼講解:Knock Sensor 敲擊感知器

Arduino示例代碼講解:Knock Sensor 敲擊感知器 Knock Sensor 敲擊感知器功能概述硬件部分:軟件部分:代碼逐行解釋定義常量定義變量`setup()` 函數`loop()` 函數工作原理Knock Sensor 敲擊感知器 這段代碼是一個Arduino示例程序,用于檢測敲擊聲。它通過讀取一個壓電元件(p…

【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增刪改查

SQL得最核心就是增刪改查 一個后端開發&#xff0c;在工作中&#xff0c;最常見的場景就是CRUD。 插入數據 insert into student values (1,zhangsan); 指定列插入數據 同時多個列明之間使用逗號&#xff0c;來分割 insert into student (name) values (zhaoliu); 這個黑框…

ggscitable包通過曲線擬合深度挖掘一個陌生數據庫非線性關系

很多新手剛才是總是覺得自己沒什么可以寫的&#xff0c;自己不知道選什么題材進行分析&#xff0c;使用scitable包ggscitable包后這個完全不用擔心&#xff0c;選題多到你只會擔心你寫不完&#xff0c;寫得不夠快。 既往咱們使用scitable包交互效應深度挖掘一個陌生數據庫&…

ctfshow VIP題目限免 版本控制泄露源碼2

根據題目提示是版本控制泄露源碼 版本控制&#xff08;Version Control&#xff09;是一種在軟件開發和其他領域中廣泛使用的技術&#xff0c;用于管理文件或項目的變更歷史。 主流的版本控制工具&#xff1a; ?Git?&#xff1a;目前最流行的分布式版本控制系統。?SVN?&am…

2025-04-05 吳恩達機器學習5——邏輯回歸(2):過擬合與正則化

文章目錄 1 過擬合1.1 過擬合問題1.2 解決過擬合 2 正則化2.1 正則化代價函數2.2 線性回歸的正則化2.3 邏輯回歸的正則化 1 過擬合 1.1 過擬合問題 欠擬合&#xff08;Underfitting&#xff09; 模型過于簡單&#xff0c;無法捕捉數據中的模式&#xff0c;導致訓練誤差和測試誤…

如何用人工智能大模型,進行作業批改?

今天我們學習人工智能大模型如何進行作業批改。手把手學習視頻請訪問https://edu.csdn.net/learn/40402/666452 第一步&#xff0c;進入訊飛星火。打開google瀏覽器&#xff0c;輸入百度地址后&#xff0c;搜索”訊飛星火”&#xff0c;在搜索的結果中&#xff0c;點第一個訊飛…

C++學習筆記之 模板|函數模板|類模板

函數模板 類模板 定義&#xff1a;函數模板是建立一個通用函數&#xff0c;它所用到的數據的類型&#xff08;包括返回值類型、形參類型、局部變量類型 &#xff09;可以不具體指定&#xff0c;而是用一個虛擬的類型來代替&#xff08;用標識符占位&#xff09;&#xff0c;在…

正則入門到精通

? 一、正則表達式入門? 正則表達式本質上是一串字符序列&#xff0c;用于定義一個文本模式。通過這個模式&#xff0c;我們可以指定要匹配的文本特征。例如&#xff0c;如果你想匹配一個以 “abc” 開頭的字符串&#xff0c;正則表達式可以寫作 “^abc”&#xff0c;其中 …

對備忘錄模式的理解

對備忘錄模式的理解 一、場景1、題目【[來源](https://kamacoder.com/problempage.php?pid1095)】1.1 題目描述1.2 輸入描述1.3 輸出描述1.4 輸入示例1.5 輸出示例 2、理解需求 二、不采用備忘錄設計模式1、代碼2、問題3、錯誤的備忘錄模式 三、采用備忘錄設計模式1、代碼1.1 …

86.方便的double轉string屬性 C#例子 WPF例子

在C#開發中&#xff0c;屬性封裝是一種常見的設計模式&#xff0c;它可以幫助我們更好地控制數據的訪問和修改&#xff0c;同時提供更靈活的功能擴展。今天&#xff0c;我們就來探討一個簡單而優雅的屬性封裝示例&#xff1a;Power 和 PowerFormatted。 1. 問題背景 在實際開…

bun 版本管理工具 bum 安裝與使用

在使用 node 的過程中&#xff0c;我們可能會因為版本更新或者不同項目的要求而頻繁切換 node 版本&#xff0c;或者是希望使用更簡單的方式安裝不同版本的 node&#xff0c;這個時候我們一般會用到 nvm 或者類似的工具。 在我嘗試使用 bun 的時候&#xff0c;安裝前第一個想到…

GRE,MGRE

GRE&#xff1a;靜態過程&#xff0c;有局限性 R1 &#xff1a; [r1]interface Tunnel 0/0/0 --- 創建一個虛擬的隧道接口 [r1-Tunnel0/0/0]ip address 192.168.3.1 24 --- 給隧道接口分配一個 IP 地址 [r1-Tunnel0/0/0]tunnel-protocol gre --- 定義接口的封裝方式 [r1-Tun…

游戲無法啟動?XINPUT1_3.dll 丟失的終極解決方案

當你興奮地啟動一款新游戲時&#xff0c;突然彈出一個錯誤提示——‘程序無法啟動&#xff0c;因為計算機中丟失 XINPUT1_3.dll’。這種問題在 PC 玩家中非常常見&#xff0c;尤其是運行一些較老的游戲時。XINPUT1_3.dll 是 DirectX 運行庫的關鍵組件&#xff0c;缺失會導致游戲…

用大語言模型學文學常識

李白的詩句“右軍本清真”中的“清真”并非指伊斯蘭教信仰&#xff0c;而是對王羲之&#xff08;王右軍&#xff09;人格和藝術境界的贊美。以下是對這一問題的詳細分析&#xff1a; “清真”的古代含義 在魏晉至唐代的語境中&#xff0c;“清真”一詞多用于形容人的品格高潔、…

css炫酷的3D水波紋文字效果實現詳解

炫酷的3D水波紋文字效果實現詳解 這里寫目錄標題 炫酷的3D水波紋文字效果實現詳解項目概述技術棧核心實現1. 基礎布局2. 漸變背景3. 文字效果實現3.1 基礎樣式3.2 文字漂浮動畫 4. 水波紋效果4.1 模糊效果4.2 水波動畫 5. 交互效果 技術要點項目難點與解決方案總結 項目概述 在…

八、重學C++—動態多態(運行期)

上一章節&#xff1a; 七、重學C—靜態多態&#xff08;編譯期&#xff09;-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146999362?spm1001.2014.3001.5502 本章節代碼&#xff1a; cpp/dynamicPolymorphic.cpp CuiQingCheng/cppstudy - 碼云 - 開源中…

eventEmitter實現

沒有做任何異常處理,簡單模擬實現 事件對象的每一個事件都對應一個數組 /*__events {"事件1":[cb1,cb2],"事件2":[cb3,cb4],"事件3":[...],"事件4":[...],};*/class E{__events {};constructor(){}//注冊監聽回調on(type , callbac…

Mysql 中 B 樹 vs B+ 樹

&#x1f333; 什么是 B樹 和 B樹&#xff1f; 它們都是多路平衡查找樹&#xff08;M-Way Search Tree&#xff09;&#xff0c;用于提升磁盤讀寫效率&#xff0c;常用于數據庫&#xff08;如 MySQL&#xff09;、操作系統中的索引結構。 &#x1f50d; B樹 和 B樹 的核心區別…

藍橋云客---九宮幻方

1.九宮幻方 - 藍橋云課 九宮幻方 題目描述 小明最近在教鄰居家的小朋友小學奧數&#xff0c;而最近正好講述到了三階幻方這個部分&#xff0c;三階幻方指的是將1~9不重復的填入一個3 * 3的矩陣當中&#xff0c;使得每一行、每一列和每一條對角線的和都是相同的。 三階幻方又…