HTML5 中使用 required 屬性和自定義驗證訊息


HTML5 包含許多內建的表單驗證功能,允許開發者輕鬆地向表單新增驗證。其中一項功能是“required”屬性,它指定輸入欄位是必需的,並且必須在提交表單之前填寫。

“required”屬性是一個布林屬性。如果表單中存在任何帶有“required”屬性的輸入欄位,則必須在提交表單之前填寫該欄位。

如果在提交表單之前該特定欄位為空,則使用者將看到瀏覽器發出的錯誤訊息,告知他們該輸入欄位是必需的。

使用“required”屬性

要使用“required”屬性,只需將其新增到要設定為必需的輸入欄位中即可:

<html>
<body>
   <form>
      <label for="name">Name:</label>
      <input type="text" required>
   </form>
</body>
</html>

瀏覽器將在提交表單之前驗證輸入欄位是否已填寫,如果未填寫,則會顯示錯誤訊息。根據瀏覽器的不同,預設錯誤訊息可能有所不同,但通常會說明該欄位是必需的。

自定義驗證訊息

我們還可以透過指定一個唯一的訊息來更改無效輸入的訊息,該訊息將在欄位無效時傳送給使用者。我們可以使用“title”屬性更改預設的驗證訊息:

<html>
<body>
   <form>
      <label for="name">Name:</label>
      <input type="text" id="name" required title="Please enter your name">
   </form>
</body>
</html> 

如果在提交表單時輸入欄位為空,則此程式碼將向用戶顯示訊息“請輸入您的姓名”。

除了“title”屬性之外,HTML5 還提供了“pattern”元素,允許開發人員指定輸入必須匹配的正則表示式,以便在每次填寫表單時進行驗證。如果輸入不符合所需的模式,使用者將看到瀏覽器發出的錯誤訊息。

示例

以下是如何使用“pattern”屬性指定輸入欄位的最小長度的示例:

<html>
<body>
   <form>
      <label for="name">Name:</label>
      <input type="text" required pattern=".{3,}" title="Please enter at least 3 characters">
   </form>
</body>
</html>

如果輸入不符合此條件,則將顯示訊息“請輸入至少 3 個字元”。此程式碼要求輸入欄位包含至少 3 個字元。

自定義錯誤訊息樣式

可以使用 CSS 更改錯誤訊息的外觀。錯誤訊息預設情況下作為一個小文字節點新增到輸入欄位中,並以紅色字型顯示。但是,我們可以使用 CSS 修改錯誤訊息的外觀並控制其顯示方式。

可以使用“:invalid”偽類在輸入欄位無效時選擇它,並使用 CSS 屬性更改錯誤訊息的樣式。

示例

以下是如何使用 CSS 自定義錯誤訊息樣式的示例:

<html>
   <style>
      input:invalid {
         border: 2px solid red;
      }
      input:invalid + span {
         color: red;
         font-weight: bold;
      }
   </style>
   <body>
      <form>
         <label for="name">Name:</label>
         <input type="text" required pattern=".{3,}" title="Please enter at least 3 characters">
      </form>
   </body>
</html>

當輸入欄位無效時,此程式碼將使其邊框變為紅色,並顯示一個粗體紅色錯誤訊息。

使用 JavaScript 自定義錯誤訊息

除了使用 CSS 之外,我們還可以使用 JavaScript 自定義錯誤訊息並控制其顯示方式。

要使用 JavaScript 自定義錯誤訊息,我們可以使用“setCustomValidity”方法,該方法允許我們為輸入欄位指定自定義錯誤訊息。

示例

以下是如何使用“setCustomValidity”方法設定自定義錯誤訊息的示例:

<html>
<body>
   <h2>JavaScript Validation</h2>
   <p>Enter a number and click OK:</p>
   <input id="InputField" type="text" required>
   <button onclick="myFunction()">OK</button>
   <p id="demo"></p>
   <script>
      function myFunction() {
         const txt = document.getElementById("InputField").value;
         console.log(txt);
         const txtLen = txt.length;
         console.log(txtLen);
         if (txtLen<3) {
            document.getElementById("demo").innerHTML = "Must be atleast 3 characters";
         } else {
            document.getElementById("demo").innerHTML = "Input OK";
         }
      }
   </script>
</body>
</html>

此程式碼將輸入欄位的錯誤訊息設定為“請輸入有效值”。

結論

在這篇文章中,我們探討了如何將個性化的驗證訊息與 HTML5 的“required”元素結合使用。我們討論了表單驗證的基礎知識、“required”標籤以及如何使用 JavaScript 和 CSS 來個性化驗證訊息。

開發人員可以透過利用“required”元素並自定義驗證訊息,輕鬆地向其 HTML5 表單新增表單驗證,並確保使用者提供了必要的資訊。表單驗證是保證使用者輸入的準確性和完整性的重要工具,許多 Web 應用程式都依賴於它。

更新於: 2023 年 3 月 2 日

18K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.