首頁 web前端 js教程 Ant Design表單:如何為同一字段設置不同觸發時機的多重校驗規則?

Ant Design表單:如何為同一字段設置不同觸發時機的多重校驗規則?

Apr 04, 2025 pm 01:18 PM
red

Ant Design表單:如何為同一字段設置不同觸發時機的多重校驗規則?

Ant Design表單:如何為同一字段設置不同觸發時機下的多重校驗規則?

Ant Design 3 的Form 表單如何為單個字段設置多個校驗規則,並分別指定其觸發時機(例如, onChangeonBlur )?本文將提供一種高效的解決方案,避免自定義組件的複雜性。

假設需要為一個字段設置三個校驗規則:前兩個在值改變時( onChange ) 立即校驗,最後一個在失去焦點時( onBlur ) 校驗。直接使用rules屬性並不能滿足這一需求。

解決方案:

核心思路是將校驗規則分組,並利用form.validateFields方法在onBlur事件中手動觸發特定規則的校驗。

  1. 規則定義與分組:不要將所有規則都直接放在rules屬性中。 我們可以為每個規則對象添加一個trigger屬性,例如:
 const rules = [
  { required: true, message: '必填', trigger: 'onChange' },
  { pattern: /^[az] $/i, message: '只能輸入字母', trigger: 'onChange' },
  { min: 6, message: '至少6個字符', trigger: 'onBlur' },
];
登入後複製
  1. 條件校驗:在表單字段組件中,監聽onBlur事件:
 const MyComponent = ({ form }) => {
  const [fieldName] = useState('myField'); // 要校驗的字段名const handleBlur = () => {
    form.validateFields([fieldName])
      .then(() => {
        // 校驗成功後的操作})
      .catch((errorInfo) => {
        // 校驗失敗後的操作});
  };

  return (
    
登入後複製
rule.trigger === 'onChange')}> ); };

注意: rules屬性中只包含trigger: 'onChange'的規則, onBlur規則在handleBlur函數中通過form.validateFields方法觸發。

通過這種方法,我們利用了Ant Design Form 的內置校驗機制,並通過手動觸發validateFields來實現不同觸發時機的多重校驗,避免了直接修改樣式而無法影響表單校驗結果的問題,從而保持了表單校驗的完整性和靈活性。

以上是Ant Design表單:如何為同一字段設置不同觸發時機的多重校驗規則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
HDFS配置CentOS需要哪些步驟 HDFS配置CentOS需要哪些步驟 Apr 14, 2025 pm 06:42 PM

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

使用DICR/YII2-Google將Google API集成在YII2中 使用DICR/YII2-Google將Google API集成在YII2中 Apr 18, 2025 am 11:54 AM

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹餾標д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

如何利用Redis緩存方案高效實現產品排行榜列表的需求? 如何利用Redis緩存方案高效實現產品排行榜列表的需求? Apr 19, 2025 pm 11:36 PM

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

centos redis如何配置慢查詢日誌 centos redis如何配置慢查詢日誌 Apr 14, 2025 pm 04:54 PM

在CentOS系統上啟用Redis慢查詢日誌,提升性能診斷效率。以下步驟將指導您完成配置:第一步:定位並編輯Redis配置文件首先,找到Redis配置文件,通常位於/etc/redis/redis.conf。使用以下命令打開配置文件:sudovi/etc/redis/redis.conf第二步:調整慢查詢日誌參數在配置文件中,找到並修改以下參數:#慢查詢閾值(毫秒)slowlog-log-slower-than10000#慢查詢日誌最大條目數slowlog-max-len

Spring Boot中OAuth2Authorization對象Redis緩存失敗怎麼辦? Spring Boot中OAuth2Authorization對象Redis緩存失敗怎麼辦? Apr 19, 2025 pm 08:03 PM

SpringBoot中使用Redis緩存OAuth2Authorization對像在SpringBoot應用中,使用SpringSecurityOAuth2AuthorizationServer...

HDFS配置CentOS需要修改哪些文件 HDFS配置CentOS需要修改哪些文件 Apr 14, 2025 pm 07:27 PM

在CentOS上配置Hadoop分佈式文件系統(HDFS)時,需要修改以下關鍵配置文件:core-site.xml:fs.defaultFS:指定HDFS的默認文件系統地址,例如hdfs://localhost:9000。 hadoop.tmp.dir:指定Hadoop臨時文件的存儲目錄。 hadoop.proxyuser.root.hosts和hadoop.proxyuser.ro

CentOS HDFS配置報錯怎麼解決 CentOS HDFS配置報錯怎麼解決 Apr 14, 2025 pm 07:06 PM

CentOS系統下HDFS配置錯誤排查指南本文旨在幫助您解決CentOS系統中配置HDFS時遇到的問題。請按照以下步驟進行排查:Java環境驗證:確認JAVA_HOME環境變量已正確設置。在/etc/profile或~/.bashrc文件中添加以下內容:exportJAVA_HOME=/path/to/your/javaexportPATH=$JAVA_HOME/bin:$PATH執行source/etc/profile或source~/.bashrc使配置生效。 Hadoop

CentOS中GitLab的數據庫如何選擇 CentOS中GitLab的數據庫如何選擇 Apr 14, 2025 pm 05:39 PM

在CentOS系統上安裝和配置GitLab時,數據庫的選擇至關重要。 GitLab兼容多種數據庫,但PostgreSQL和MySQL(或MariaDB)最為常用。本文將分析數據庫選擇因素,並提供詳細的安裝和配置步驟。數據庫選擇指南選擇數據庫需要考慮以下因素:PostgreSQL:GitLab的默認數據庫,功能強大,可擴展性高,支持複雜查詢和事務處理,適合大型應用場景。 MySQL/MariaDB:廣泛應用於Web應用的流行關係型數據庫,性能穩定可靠。 MongoDB:NoSQL數據庫,擅長處

See all articles