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+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告