Vue中v-form標簽里的:rules作用及定義方法
在 Vue 項目中,如果你使用的是 Element UI 或 Element Plus 組件庫,el-form 標簽上的 :rules 是用來進行表單驗證的
作用
:rules 用于為表單中的表單項(el-form-item)定義驗證規(guī)則。當用戶在表單中輸入數(shù)據(jù)時,這些規(guī)則會對輸入內(nèi)容進行校驗,以確保數(shù)據(jù)的合法性和完整性。例如,可以驗證輸入是否為空、是否符合特定的格式(如郵箱格式、電話號碼格式等),以及輸入的長度是否在規(guī)定范圍內(nèi)等。如果輸入不符合規(guī)則,會顯示相應的錯誤提示信息。
定義方法
1. 基本驗證規(guī)則
以下是一個簡單的示例,展示了如何定義和使用 :rules 進行表單驗證
<template> <el-form :model="formData" :rules="rules" ref="formRef"> <el-form-item label="用戶名" prop="username"> <el-input v-model="formData.username"></el-input> </el-form-item> <el-form-item label="密碼" prop="password"> <el-input v-model="formData.password" type="password"></el-input> </el-form-item> <el-form-item> <el-button @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script setup> import { ref } from 'vue'; // 定義表單數(shù)據(jù) const formData = ref({ username: '', password: '' }); // 定義表單驗證規(guī)則 const rules = ref({ username: [ { required: true, message: '請輸入用戶名', trigger: 'blur' }, { min: 3, max: 10, message: '用戶名長度在 3 到 10 個字符之間', trigger: 'blur' } ], password: [ { required: true, message: '請輸入密碼', trigger: 'blur' }, { min: 6, max: 20, message: '密碼長度在 6 到 20 個字符之間', trigger: 'blur' } ] }); // 定義表單引用 const formRef = ref(null); // 提交表單方法 const submitForm = () => { formRef.value.validate((valid) => { if (valid) { console.log('表單驗證通過,提交數(shù)據(jù):', formData.value); } else { console.log('表單驗證失敗'); } }); }; </script>
代碼解釋:
formData:存儲表單中的數(shù)據(jù)。
rules:定義了每個表單項的驗證規(guī)則。每個規(guī)則是一個對象數(shù)組,每個對象代表一條驗證規(guī)則。
required:表示該項是否為必填項。
message:當驗證不通過時顯示的錯誤提示信息。
trigger:指定觸發(fā)驗證的事件,常見的值有 blur(失去焦點時驗證)和 change(值改變時驗證)。
min 和 max:用于驗證輸入的長度范圍。
prop:在 el-form-item 上使用 prop 屬性指定該表單項對應的表單數(shù)據(jù)字段名,以便與 rules 中的規(guī)則對應。
validate:調(diào)用 el-form 的 validate 方法進行表單驗證,驗證結果通過回調(diào)函數(shù)返回。
2. 自定義驗證規(guī)則
除了基本的驗證規(guī)則,你還可以定義自定義的驗證函數(shù):
<template> <el-form :model="formData" :rules="rules" ref="formRef"> <el-form-item label="郵箱" prop="email"> <el-input v-model="formData.email"></el-input> </el-form-item> <el-form-item> <el-button @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script setup> import { ref } from 'vue'; import { validateEmail } from './utils'; // 假設這是一個自定義的郵箱驗證函數(shù) const formData = ref({ email: '' }); const rules = ref({ email: [ { required: true, message: '請輸入郵箱', trigger: 'blur' }, { validator: validateEmail, message: '請輸入有效的郵箱地址', trigger: 'blur' } ] }); const formRef = ref(null); const submitForm = () => { formRef.value.validate((valid) => { if (valid) { console.log('表單驗證通過,提交數(shù)據(jù):', formData.value); } else { console.log('表單驗證失敗'); } }); }; </script>
代碼解釋:
validator:指定一個自定義的驗證函數(shù),該函數(shù)接收三個參數(shù):rule(當前的驗證規(guī)則)、value(當前表單項的值)和 callback(用于返回驗證結果的回調(diào)函數(shù))。在自定義驗證函數(shù)中,你可以編寫復雜的驗證邏輯,并通過 callback 函數(shù)返回驗證結果。
通過以上方法,你可以靈活地定義和使用 :rules 進行表單驗證。 在 Vue 項目中,如果你使用的是
到此這篇關于Vue中v-form標簽里的:rules有什么作用。如何定義。的文章就介紹到這了,更多相關Vue v-form標簽:rules內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue-treeselect及el-tree點擊節(jié)點獲取上級節(jié)點的數(shù)據(jù)方式
這篇文章主要介紹了vue-treeselect及el-tree點擊節(jié)點獲取上級節(jié)點的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Vue2.0 slot分發(fā)內(nèi)容與props驗證的方法
本篇文章主要介紹了Vue2.0 slot分發(fā)內(nèi)容與props驗證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12vue模塊導入報錯問題Module not found: Error:[CaseSensi
這篇文章主要介紹了vue模塊導入報錯問題Module not found: Error:[CaseSensitivePathsPlugin],具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Vue前端數(shù)值轉換為千分位格式并保留兩位小數(shù)代碼示例
在Vue.js開發(fā)中我們經(jīng)常會遇到需要將數(shù)字格式化為保留兩位小數(shù)的情況,下面這篇文章主要給大家介紹了關于Vue前端數(shù)值轉換為千分位格式并保留兩位小數(shù)的相關資料,需要的朋友可以參考下2024-06-06vue中集成省市區(qū)街四級地址組件的實現(xiàn)過程
我們在開發(fā)中常會遇到選擇地址的需求,有時候只需要選擇省就可以,有時候則需要選擇到市、縣,以至于鄉(xiāng)鎮(zhèn),甚至哪個村都有可能,下面這篇文章主要給大家介紹了關于vue中集成省市區(qū)街四級地址組件的相關資料,需要的朋友可以參考下2022-12-12Vue通過provide inject實現(xiàn)組件通信
這篇文章主要介紹了Vue通過provide inject實現(xiàn)組件通信,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09