7.1elementplus的表單

?Element Plus 表單由以下幾個關鍵部分構成:

  1. <el-form>: 表單容器。它是整個表單的根組件,負責管理表單數據、校驗規則、布局方式等。
  2. <el-form-item>: 表單項容器。用于包裹一個具體的表單控件(如輸入框、選擇器等)及其標簽(label)、校驗狀態提示。它是實現布局和校驗的基本單元。
  3. 表單控件 (Form Controls): 實際的輸入組件,如?<el-input>,?<el-select>,?<el-date-picker>,?<el-checkbox>,?<el-switch>?等。這些控件通過?v-model?或?:model?與?el-form?的數據模型綁定。
  4. 數據模型 (Model): 一個 JavaScript 對象,通常在?setup?或?data?中定義,用于存儲表單各字段的值。el-form?的?model?屬性指向這個對象。
  5. 校驗規則 (Rules): 一個對象,定義了每個表單字段需要滿足的校驗條件(如必填、格式、長度等)。el-form?的?rules?屬性指向這個對象。

<el-form>?詳解

  • 作用: 表單的頂層容器,協調?el-form-item?和表單控件。
  • 核心屬性:
    • model:?必需。綁定表單的數據對象。例如?:model="form", 其中?form?是?{ name: '', email: '' }?這樣的對象。
    • rules:?可選。定義表單校驗規則的對象。例如?:rules="formRules"
    • label-width: 設置所有?el-form-item?標簽(label)的寬度。可以是字符串如?"100px"?或數字?100。如果某個?el-form-item?需要不同的寬度,可以在該?el-form-item?上單獨設置。
    • label-position: 設置標簽的位置。可選值:
      • right?(默認): 標簽在控件右側(當?label-width?有效時,通常表現為左對齊標簽,右對齊控件)。
      • left: 標簽在控件左側。
      • top: 標簽在控件上方。常用于移動端或需要節省水平空間的場景。
    • label-suffix: 標簽后綴,如冒號?":"?(默認) 或其他字符。
    • hide-required-asterisk: 是否隱藏必填字段的紅色星號標記。默認?false?(顯示星號)。
    • require-asterisk-position: 星號位置。left?(默認) 或?right
    • inline: 是否讓表單項 (el-form-item) 水平排列。設置為?true?時,表單項會顯示在同一行,適合構建查詢表單。此時?label-position?通常為?right?或?left
    • disabled: 是否禁用該表單內所有控件。如果控件自身也有?disabled,則以控件自身的設置為準。
    • status-icon: 是否在輸入框中顯示校驗狀態圖標(如成功對勾、錯誤叉號)。默認?false
    • validate-on-rule-change: 當?rules?屬性改變后,是否立即觸發一次校驗。默認?true
    • scroll-to-error: 提交表單時,如果校驗失敗,是否自動滾動到第一個錯誤的表單項。默認?false
    • size: 為表單內的控件設置統一的尺寸 (large,?default,?small)。可以被控件自身的?size?覆蓋。
  • 核心方法 (通過 ref 調用):
    • validate(callback: Function): 對整個表單進行校驗。callback?函數接收兩個參數:valid?(布爾值,表示校驗是否通過) 和?invalidFields?(包含未通過校驗字段的對象)。這是提交表單前必須調用的方法
    • validateField(props: string | string[], callback: Function): 對表單的指定字段進行校驗。props?可以是字段名字符串或字符串數組。
    • resetFields(): 對整個表單進行重置,將其恢復到初始狀態(清空輸入、移除校驗狀態)。注意:這會將?model?的值重置為?el-form?組件初始化時?model?對象的值。如果初始值是?'',則重置為空;如果初始值是?'default',則重置為?'default'
    • clearValidate(props?: string | string[]): 移除表單項的校驗結果。可以指定一個或多個字段名,或不傳參清除所有。
    • scrollToField(prop: string): 滾動到指定?prop?名稱的表單項。

<el-form-item>?詳解

  • 作用: 包裹一個表單控件,提供布局、標簽、校驗狀態顯示(錯誤信息、加載狀態圖標)。
  • 核心屬性:
    • prop:?必需(當?el-form?有?rules?時)。指定該表單項對應?model?中的字段名。例如?prop="name"?對應?model.name這是?el-form?能夠找到并校驗特定字段的關鍵
    • label: 該表單項的標簽文本。
    • label-width: 覆蓋?el-form?的?label-width,設置此單項的標簽寬度。
    • required: 是否必填。如果?rules?中有?required: true,通常會自動顯示紅色星號,此屬性可顯式控制。
    • rules: 為該單項設置獨立的校驗規則。如果?el-form?的?rules?中也定義了此?prop?的規則,兩者會合并
    • error: 自定義顯示的錯誤信息文本。設置后,會強制顯示為錯誤狀態,優先級高于校驗規則產生的錯誤信息。常用于服務端返回的錯誤。
    • show-message: 是否顯示校驗錯誤信息。默認?true
    • inline-message: 是否以行內形式顯示校驗信息(錯誤信息顯示在控件右側,而不是下方)。默認?false
    • size: 設置該單項內控件的尺寸。
  • 插槽 (Slots):
    • 默認插槽: 放置表單控件。
    • label: 自定義標簽內容(可以包含 HTML 或組件)。
    • error: 自定義錯誤信息的顯示內容。

表單校驗 (Validation) 詳解

校驗是 el-form 最強大的功能之一。它支持聲明式規則和靈活的異步校驗。

  1. 校驗規則 (rules) 結構:

    • rules?是一個對象,其鍵 (key) 對應?model?中的字段名 (prop)。
    • 值是一個數組,包含一個或多個校驗規則對象。
    • 規則對象常用屬性:
      • required:?true?表示必填。
      • message: 校驗失敗時顯示的提示消息。
      • trigger: 觸發校驗的事件。常用值:
        • blur: 失去焦點時觸發。
        • change: 值改變時觸發(對于?input?是輸入時,對于?select?是選擇時)。
        • 可以是數組?['blur', 'change']
      • type: 數據類型。如?string,?number,?boolean,?array,?object,?date,?url,?email?等。指定類型后,校驗器會進行相應的類型檢查。
      • min?/?max: 字符串長度或數組長度的最小/最大值。
      • len: 長度必須等于指定值。
      • pattern: 正則表達式,值必須匹配該模式。
      • validator:?自定義校驗函數。接收三個參數:rule?(當前規則對象),?value?(當前字段的值),?callback?(校驗完成后的回調函數)。必須調用?callback(),傳入?new Error('錯誤信息')?表示失敗,或?callback()?(無參數) 表示成功。
      • asyncValidator:?異步自定義校驗函數。與?validator?類似,但它返回一個?PromisePromise?resolve 表示成功,reject 一個?Error?實例表示失敗。
  2. 內置校驗類型:

    • Element Plus 內置了對?string,?number,?boolean,?array,?object,?date,?url,?email,?pattern?等類型的校驗。
    • 例如,type: 'email'?會自動使用郵箱正則進行校驗。
  3. 自定義校驗函數示例:

    const formRules = reactive({password: [{ required: true, message: '請輸入密碼', trigger: 'blur' },{ min: 6, message: '密碼長度至少6位', trigger: 'blur' }],confirmPassword: [{ required: true, message: '請確認密碼', trigger: 'blur' },{validator: (rule, value, callback) => {if (value === '') {callback(new Error('請再次輸入密碼'));} else if (value !== form.password) { // 假設 form 是 model 對象callback(new Error('兩次輸入的密碼不一致'));} else {callback(); // 校驗通過}},trigger: 'blur'}],asyncCheck: [{asyncValidator: (rule, value, callback) => {return new Promise((resolve, reject) => {// 模擬異步請求setTimeout(() => {if (value === 'async') {resolve(); // 成功} else {reject(new Error('必須輸入 "async"')); // 失敗}}, 1000);});},trigger: 'blur'}]
    });

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

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

相關文章

TF-IDF:文本分析的“火眼金睛”

TF-IDF&#xff1a;文本分析的“火眼金睛” 在信息爆炸的時代&#xff0c;我們每天都會接觸到海量的文本數據。如何從這些數據中快速找出最重要的信息&#xff1f;TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;算法就是一種非常實用的工具&#xf…

傳統星型拓撲結構的5G,WiFi無線通信網絡與替代拓撲結構自組網

一、個人理解 區別自組網&#xff0c;5G和WiFi三者要抓住兩個關鍵點&#xff1a;移動、組網。 5G通信是移動通信的最新一代&#xff1b;1940年代美軍的手持對講機雖然可以移動&#xff0c;但是算不上網絡&#xff0c;后面的第一代移動通信蜂窩網絡才能算上網絡。 WiFi通信雖…

REST API 是無狀態的嗎,如何保障 API 的安全調用?

當然&#xff0c;這是一個非常核心的API設計和安全領域的問題。我們來詳細拆解一下。1. REST API 是無狀態的嗎&#xff1f;?是的&#xff0c;REST API 的核心原則之一就是“無狀態”&#xff08;Statelessness&#xff09;。??這意味著&#xff1a;?服務器不保存客戶端的會…

Machine Learning HW3 report:圖像分類(Hongyi Lee)

任務&#xff1a;使用CNN把食物圖片分為11類&#xff08;不能使用預訓練的模型&#xff09;。此任務很耗時&#xff0c;一次訓練至少1h&#xff0c;所以要利用好Kaggle notebook中Save Version功能&#xff0c;并行訓練節省時間。 基準 Simple : 0.50099Medium : 0.73207 Train…

Element整體操作樣式

Element: 給表格整體設置斑馬紋 在main.js中 ElementUI.Table.props.stripe {type: Boolean,default: true }在element-ui.scss中 // // 為所有 el-table 設置默認斑馬紋 // .el-table { // &.el-table--enable-row-hover .el-table__body tr:hover > td { // ba…

谷歌官宣組建“網絡攻擊部門”,美國網絡安全戰略轉向“以攻代防”

谷歌宣布將組建網絡攻擊部門8月27日&#xff0c;谷歌宣布將組建網絡攻擊部門&#xff08;disruption unit&#xff09;。谷歌威脅情報集團副總裁Sandra Joyce在本周二的網絡安全政策會議上表示&#xff0c;谷歌正在尋找“合法且符合道德規范的干擾方案”&#xff0c;通過情報主…

Rust Tokio異步任務實戰教程(高級功能)

1. 強大的異步 I/O 多路復用Tokio 的核心競爭力之一是對操作系統原生異步 I/O 機制的封裝&#xff08;如 Linux 的 epoll、Windows 的 IOCP、macOS 的 kqueue&#xff09;&#xff0c;這是異步非阻塞的底層基石。作用&#xff1a;允許單線程同時監聽成百上千個 I/O 事件&#x…

8.1【Q】VMware相關

在圖四中&#xff0c;Interface Layer是用來干什么的&#xff1f;IOBus是什么我正在使用VMware虛擬機&#xff0c;但是沒有網絡&#xff08;宿主機有網&#xff09;&#xff0c;我該如何配置網絡&#xff1f;網絡連接模式??&#xff1a;??NAT模式??&#xff08;推薦&…

從卡頓到絲滑:大型前端項目 CSS 優化全攻略

摘要 頁面樣式變重是大前端項目常見的后遺癥&#xff1a;CSS 體積越來越大、首屏卡、切頁抖、首包飆。核心問題其實就三件事&#xff1a;把首屏必須的樣式盡快給到瀏覽器、把非首屏的樣式晚點再說、把多余的樣式堅決清理掉。本文用可運行的 Demo 和工程化流程&#xff0c;帶你…

CSS基礎學習第二天

1.emmet語法1&#xff09;快速生成HTML結構語法---標簽名tab鍵即可生成標簽---標簽*數量即可生成多個標簽---如果有父子級關系的標簽&#xff0c;用>&#xff0c;比如ul>litab鍵---如果有兄弟級的標簽&#xff0c;用tab鍵---如果生成帶有類名或者id名字的&#xff0c;直接…

【自記】 Python 中函數參數前加 *(單星號)的解包可迭代對象寫法說明

在 Python 中&#xff0c;函數參數前加 *&#xff08;單星號&#xff09;是一種解包可迭代對象的寫法&#xff0c;用于將可迭代對象&#xff08;如元組、列表等&#xff09;中的元素逐個傳遞給函數的參數。具體說明當有一個可迭代對象&#xff08;比如元組 temp (1, 2, 3)&…

C語言————深入理解指針1(通俗易懂)

C語言越學到后面&#xff0c;越會感到恐慌&#xff0c;聽到指針、結構體等等這些&#xff0c;想必很多人不自覺的就會感覺很難&#xff0c;就想打退堂鼓了。哈哈哈哈&#xff0c;被小博猜到了吧&#xff01;&#xff01;悄悄告訴你們&#xff0c;小博剛開始學習的時候也是。但是…

香港電訊為知名投資公司搭建高效、安全IT管理服務體系

客戶背景 客戶為一家世界知名的能源投資公司在中國設立的子公司&#xff0c;在中國擁有涵蓋煤炭開采、火力發電、新能源以及能源貿易等貫穿整個能源供應鏈的業務體系&#xff0c;投資共計2個煤礦、4個電廠&#xff0c;以及7個光伏電站。 客戶需求 客戶希望通過位于北京的總部…

緊急安全通告:多款 OpenSSH 與 glibc 高危漏洞曝光,CVE-2023-38408 等須立即修復

概述&#xff1a;OpenSSH&#xff08;OpenBSD Secure Shell&#xff09;是加拿大OpenBSD計劃組的一套用于安全訪問遠程計算機的連接工具。該工具是SSH協議的開源實現&#xff0c;支持對所有的傳輸進行加密&#xff0c;可有效阻止竊聽、連接劫持以及其他網絡級的攻擊。 OpenSSH …

隨時隨地開發:通過 FRP 搭建從 Ubuntu 到 Windows 的遠程 Android 調試環境

你是否曾夢想過這樣的工作流:在咖啡館里,你只帶著一臺輕薄的 Surface Pro,而代碼的編譯、運行和調試,全部交由家里那臺性能強勁的 Ubuntu 臺式機來完成?更酷的是,你甚至想將手機直接插在 Surface 上,讓遠端的 Ubuntu 無縫識別并進行開發。 今天,我們就將這個夢想變為現…

異步編程與面向對象知識總結

文章目錄原型鏈關鍵字總結原型對象:prototype對象原型:__ proto__面向對象編程封裝抽象多態總結異步編程基礎循環宏任務嵌套微任務原型鏈關鍵字總結 原型對象:prototype 函數的屬性,指向一個對象&#xff0c;這個對象是通過該函數作為構造函數創建的所有實例的原型 修改原型會…

Spring Boot + KingbaseES 連接池實戰

文章目錄一、前言二、什么是數據庫連接池&#xff1f;三、SpringBoot KingbaseES 環境準備3.1 加依賴&#xff08;pom.xml&#xff09;3.2 基礎連接信息&#xff08;application.yml&#xff09;四、四類主流連接池實戰4.1 DBCP&#xff08;遷移型 / 傳統項目友好&#xff09;…

矩陣待辦ios app Tech Support

Getting Support: mail: 863299715qq.com

React中優雅管理CSS變量的最佳實踐

在現代前端開發中&#xff0c;CSS變量&#xff08;也稱為CSS自定義屬性&#xff09;已成為管理樣式系統的重要工具。它們提供了強大的動態樣式能力&#xff0c;但在JavaScript中高效地訪問和使用這些變量卻存在一些挑戰。本文將介紹一個優化的解決方案&#xff0c;幫助你在Reac…

智能制造——解讀裝備制造業智能工廠解決方案【附全文閱讀】

適應人群為裝備制造企業(如汽車、航空航天、能源裝備等)中高層管理者、生產運營負責人、IT 部門(智能制造 / 工業互聯網團隊)、安全管理專員及園區數字化建設決策者。主要內容圍繞裝備制造業智能工廠解決方案展開,核心包括建設背景(解決生產安全管理缺失、工序手工記錄無…