vue + element-plus自定義表單驗證(修改密碼業務)

寫一個vue組件Password.vue

沒有表單驗證只有3個表單項

<template><div><el-form><el-form-item label="舊密碼"><el-input></el-input></el-form-item><el-form-item label="新密碼"><el-input></el-input></el-form-item><el-form-item label="驗證密碼"><el-input></el-input></el-form-item></el-form></div>
</template>
<script setup></script>

路由省略

給這個表單綁定一個對象

<template><div><el-form :="data.form"><el-form-item label="舊密碼" v-model="data.form.oldPassword"><el-input ></el-input></el-form-item><el-form-item label="新密碼" v-model="data.form.password"><el-input></el-input></el-form-item><el-form-item label="驗證密碼" v-model="data.form.confirmPassword"><el-input></el-input></el-form-item></el-form></div>
</template>
<script setup>
import {reactive}  from "vue";
const data = reactive({form: {oldPassword: '',password: '',confirmPassword: ''}
})
</script>

給表單綁定規則注意表單項一定要有prop屬性 屬性值對應 data.rules里的屬性

<template><div><el-form :model="data.form" :rules="data.rules"><el-form-item label="舊密碼" prop="oldPassword" ><el-input v-model="data.form.oldPassword"></el-input></el-form-item><el-form-item label="新密碼"   prop="password"><el-input v-model="data.form.password"></el-input></el-form-item><el-form-item label="驗證密碼" ><el-input v-model="data.form.confirmPassword"></el-input></el-form-item></el-form></div>
</template>
<script setup>
import {reactive}  from "vue";
const data = reactive({form: {oldPassword: '',password: '',confirmPassword: ''},rules: {oldPassword: [{ required: true, message: '請輸入舊密碼', trigger: 'blur' },{ min: 6, max: 32, message: '長度在 6 到 32 個字符', trigger: 'blur' }],password: [{ required: true, message: '請輸入新密碼', trigger: 'blur' },{ min: 6, max: 32, message: '長度在 6 到 32個字符', trigger: 'blur' }]}
})
</script>

? ? ? ?

添加自定義規則注意規則有優先級的

<template><div><el-form :model="data.form" :rules="data.rules"><el-form-item label="舊密碼" prop="oldPassword" ><el-input v-model="data.form.oldPassword"></el-input></el-form-item><el-form-item label="新密碼"   prop="password"><el-input v-model="data.form.password"></el-input></el-form-item><el-form-item label="驗證密碼"   prop="confirmPassword"><el-input v-model="data.form.confirmPassword"></el-input></el-form-item></el-form></div>
</template>
<script setup>
import {reactive}  from "vue";
const validatePass1 = (rule, value, callback) => {if (value === '') {callback(new Error('請輸入新密碼'));} else if (value !== '123') {callback(new Error('舊密碼錯誤'));}else{callback();}
}
const validatePass2 = (rule, value, callback) => {if (value === '') {callback(new Error('請再次輸入新密碼'));} else if (value !== data.form.password) {callback(new Error('兩次輸入密碼不一致!'));} else {callback();}
}
const data = reactive({form: {oldPassword: '',password: '',confirmPassword: ''},rules: {oldPassword: [{ required: true, message: '請輸入舊密碼', trigger: 'blur' },{validator: validatePass1, trigger: 'blur'}],password: [{ required: true, message: '請輸入新密碼', trigger: 'blur' },{ min: 6, max: 32, message: '長度在 6 到 32個字符', trigger: 'blur' }],confirmPassword: [{ required: true, message: '請再次輸入新密碼', trigger: 'blur' },{ validator: validatePass2, trigger: 'blur' }]}
})
</script>

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

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

相關文章

Linux下使用MTK的SP_Flash_tool刷機工具

MTK的SP_Flash_tool刷機工具安裝流程如下&#xff1a; 1、解壓SP_Flash_Tool_Linux_v5.1336.00.100_Customer.zip unzip SP_Flash_Tool_exe_Linux_64Bit_v5.1520.00.100.zip 2、首先安裝 libusb-dev 這個包&#xff1a; sudo apt-get install libusb-dev 3、安裝成功之后…

基于 PyGetWindow 獲取窗口信息和控制窗口

PyGetWindow 是基于Python的一款簡單、跨平臺的模塊&#xff0c;用來獲取窗口信息和控制窗口。可以實現的功能有&#xff1a; 獲取當前系統中所有打開窗口的列表。 根據窗口標題、窗口句柄等屬性獲取特定的窗口對象。 激活、最小化、最大化和關閉窗口。 獲取和設置窗口的位置、…

STM32硬件IIC+DMA驅動OLED顯示——釋放CPU資源,提升實時性

目錄 前言 一、軟件IIC與硬件IIC 1、軟件IIC 2、硬件IIC 二、STM32CubeMX配置KEIL配置 三、OLED驅動示例 1、0.96寸OLED 2、OLED驅動程序 3、運用示例 4、效果展示 總結 前言 0.96寸OLED屏是一個很常見的顯示模塊&#xff0c;其驅動方式在用采IIC通訊時&#xff0c;常用軟件IIC…

【ozone工具使用指南】基于keil使用ozone創建一個調試工程

前言&#xff1a;一般調試嵌入式工程代碼最常見的方式是基于keil上面DEBUG&#xff0c;使用這種最古老的方式雖然也很方便&#xff0c;但是一些功能并沒有辦法體現&#xff0c;比如變量的變化曲線或者波形并無法直觀的顯示出來&#xff0c;ozone這個工具就結合了上面提到的比ke…

【ROS2】行為樹 BehaviorTree(五):詳細學習端口和黑板

1、構造函數 之前使用的行為樹創建節點時,默認的構造函數形如: CalculateGoal(const std::string& name, const NodeConfig& config):SyncActionNode(name,config) {

架構思維:緩存層場景實戰_讀緩存(下)

文章目錄 Pre業務場景緩存存儲數據的時機與常見問題解決方案1. 緩存讀取與存儲邏輯2. 高并發下的緩存問題及解決方案3. 緩存預熱&#xff08;減少冷啟動問題&#xff09; 緩存更新策略&#xff08;雙寫問題&#xff09;1. 先更新緩存&#xff0c;再更新數據庫&#xff08;不推薦…

Odrive源碼分析(七) 逆park變換

Odrive源碼分析(七) Park逆變換 Odrive中FOC部分代碼分散在各個對象中&#xff0c;并不是集中在某一塊&#xff0c;所以試圖在某一段代碼就能得到FOC全貌是不現實的。 先看下FOC的整個流程&#xff1a; 控制變量到三相電流輸出的關鍵部分分為Park逆變換和SVPWM。本文主要討論…

Flink Hive Catalog最佳實踐

Flink Hive Catalog 最佳實踐 一、配置與初始化 依賴管理 Hive Connector 版本對齊&#xff1a;需確保 flink-sql-connector-hive 版本與 Hive 版本嚴格匹配&#xff08;如 Hive 3.1.3 對應 flink-sql-connector-hive-3.1.3_2.12&#xff09;&#xff0c;同時添加 Hadoop 遮蔽…

通過人類和機器人演示進行聯合逆向和正向動力學的機器人訓練

25年3月來自哥倫比亞大學的論文“Train Robots in a JIF: Joint Inverse and Forward Dynamics with Human and Robot Demonstrations”。 在大型機器人演示數據集上進行預訓練是學習各種操作技能的強大技術&#xff0c;但通常受到收集以機器人為中心數據的高成本和復雜性限制…

金融簡單介紹及金融詐騙防范

在當今社會&#xff0c;金融學如同一股無形卻強大的力量&#xff0c;深刻影響著我們生活的方方面面。無論是個人的日常收支、投資理財&#xff0c;還是國家的宏觀經濟調控&#xff0c;都與金融學緊密相連。? 一、金融學的概念? 金融學&#xff0c;簡單來說&#xff0c;是研…

JavaScript `new Date()` 方法移動端 `兼容 ios`,ios環境new Date()返回NaN

在 iOS 環境下&#xff0c;new Date() 方法會返回 NaN&#xff0c;這通常是由于時間字符串的格式問題。iOS 的 Date 構造函數對時間字符串的格式要求比其他平臺更嚴格。 原因&#xff1a;ios端不兼容“-”為連接符的時間。 解決辦法&#xff1a; 替換時間格式 IOS 不支持某…

【網絡編程】網絡編程基礎和Socket套接字

目錄 一. 網絡編程的概念 二. 網絡編程基礎知識 1&#xff09;網卡 2&#xff09;接收端和發送端 3&#xff09;客戶端和服務器 4&#xff09;請求和響應 5&#xff09;客戶端和服務器的交互模式 三. Socket 套接字模型 一. 網絡編程的概念 網絡編程 是通過編程實現不同…

盛水最多的容器問題詳解:雙指針法與暴力法的對比與實現

文章目錄 問題描述方法探討方法一&#xff1a;暴力法&#xff08;Brute Force&#xff09;思路代碼實現復雜度分析 方法二&#xff1a;雙指針法&#xff08;Two Pointers&#xff09;思路正確性證明代碼實現復雜度分析 方法對比總結 摘要 盛水最多的容器&#xff08;Container …

圖論-BFS搜索圖/樹-最短路徑問題的解決

續上篇~圖論--DFS搜索圖/樹-CSDN博客 先看第一次學習的博客&#xff01;&#xff01;&#x1f447;&#x1f447;&#x1f447;&#x1f447; &#x1f449; 有一些問題是廣搜 和 深搜都可以解決的&#xff0c;例如島嶼問題&#xff0c;這里我們記dfs的寫法就好啦&#xff0c;…

C++進階——C++11_智能指針

目錄 1、問題引入 2、RAII和智能指針 3、C標準庫的智能指針 3.1 auto_ptr (不好) 3.2 unique_ptr 3.3 shared_ptr (重點) 3.4 weak_ptr (重點) 4、shared_ptr的循環引用問題(重點) 5、shared_ptr的線程安全問題 6、C11智能指針和boost的關系 7、內存泄漏 7.1 什么是…

數據庫的基本原則

數據庫的核心原則 原子性與持久性&#xff1a;原子性&#xff08;Atomicity&#xff09;確保一個事務中的所有操作要么全部完成&#xff0c;要么完全不執行&#xff0c;不會出現部分完成的情況。持久性&#xff08;Durability&#xff09;則保證一旦事務提交成功&#xff0c;即…

Java設計模式實戰:裝飾模式在星巴克咖啡系統中的應用

一、裝飾模式簡介 裝飾模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許向一個現有的對象添加新的功能&#xff0c;同時又不改變其結構。這種模式創建了一個裝飾類&#xff0c;用來包裝原有的類&#xff0c;并在保持類方法簽名完整性的前…

使用MPI-IO并行讀寫HDF5文件

使用MPI-IO并行讀寫HDF5文件 HDF5支持通過MPI-IO進行并行讀寫&#xff0c;這對于大規模科學計算應用非常重要。下面我將提供C和Fortran的示例程序&#xff0c;展示如何使用MPI-IO并行讀寫HDF5文件。 準備工作 在使用MPI-IO的HDF5之前&#xff0c;需要確保: HDF5庫編譯時啟用…

七、自動化概念篇

自動化測試概念 自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常&#xff0c;在設計了測試用例并通過評審之后&#xff0c;由測試人員根據測試用例中描述的過程一步步執行測試&#xff0c;得到實際結果與期望結果的比較。在此過程中&#xff0c;為了節省人…

redis cluster 的通信機制

Redis Cluster 的通信機制是其分布式架構的核心&#xff0c;基于 Gossip 協議 和 Cluster Bus 實現節點間狀態同步與數據協調。以下是其通信機制的核心要點&#xff1a; 二進制協議&#xff1a;數據以字節流形式編碼&#xff08;如Protobuf、Thrift、MQTT、Gossip&#xff09;。…