更快樂的HTML5表格驗證
CSS的input:invalid {}
樣式在表單元素無效時很有用,但直接使用用戶體驗很差。例如,表單加載時立即顯示無效樣式,這會讓用戶感到困惑。因此,這種用法在實際應用中很少見。然而,如果能避免這個問題, :invalid
選擇器就能在表單驗證中發揮巨大作用,而無需依賴大型庫。
Dave提出了一種改進方案,基於2017年的原始想法:
<code>form.errors :invalid { outline: 2px solid red; }</code>
只有在確定表單處於錯誤狀態並添加了errors
類後,才會應用原生錯誤樣式。測試也很容易。例如,可以在提交按鈕點擊時應用該類:
<code>submitButton.addEventListener("click", (e) => { form.classList.toggle("errors", !form.checkValidity()) });</code>
也可以在輸入框失去焦點時或其他時機應用。甚至可以將每個輸入框用包裝器包裹,並在適當的時候切換包裝器的類。
Dave將此想法應用於Vue:
我們初始化表單組件時將
errors
設置為false
,因為我們不希望在用戶提交表單之前顯示錯誤樣式。invalidateForm
函數只是將this.error
設置為true
。這是CSS :invalid
偽類的缺點之一,它過於急切。通過監聽invalid
事件,可以延遲樣式的應用,直到第一次表單提交嘗試之後,我們知道表單存在錯誤。
這種方法無需額外引入庫,充分利用了HTML表單驗證的原生功能。以下鏈接是一個改進的版本,也顯示了錯誤消息:
直接鏈接→
以上是更快樂的HTML5表格驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move
