DOM 表单验证

表单是和用户交互的一个重要元素,本文整理了表单验证相关的一些方法。

表单是和用户交互的一个重要元素,本文整理了表单验证相关的一些方法。

表单验证

使用 JavaScript 可以 验证 HTML 表单的内容。如果验证不通过则阻止表达提交,防止错误的数据提交到服务器,从而减轻服务器的压力。

!! 注意:JavaScript 验证表单只是一种前端的验证方法,不能代替服务器端对数据的验证。

如果表单域 (fname) 为空,此函数会发出一条警告消息,并返回 false,以防止表单被提交:

以下是一个验证函数,验证 fname 字是否为空,如果为空,给出要给提示,并返回 false 来组织表单提交。

function validateForm() {
  let x = document.forms["myForm"]["fname"].value;
  if (x == "") {
    alert("必须输入名称");
    return false;
  }
}

将验证函数绑定到表单的提交事件上:

<form name="myForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
  名称: <input type="text" name="fname" />
  <input type="submit" value="Submit" />
</form>

验证数字输入

以下示例验证输入的数字是否是 1 到 10 之间的数字:

<!DOCTYPE html>
<html>
  <body>
    <h2>JavaScript 验证</h2>

    <p>请输入 1 到 10 之间的数字:</p>

    <input id="numb" />

    <button type="button" onclick="myFunction()">提交</button>

    <p id="demo"></p>

    <script>
      function myFunction() {
        // 获取 id="numb" 的输入框中输入的值
        let x = document.getElementById("numb").value;
        // 如果输入的内容不是 1 到 10 之间的数字,给出错误信息,否则给出正确信息
        let text;
        if (isNaN(x) || x < 1 || x > 10) {
          text = "输入不正确";
        } else {
          text = "输入正确";
        }
        document.getElementById("demo").innerHTML = text;
      }
    </script>
  </body>
</html>

自动 HTML 表单验证

浏览器可以自动验证 HTML 表单的某些属性,比如 required 表示输入是必须的。

如果表单字段(fname)为空, required 属性会阻止提交此表单:

<form action="/action_page.php" method="post">
  <input type="text" name="fname" required />
  <input type="submit" value="Submit" />
</form>

自动 HTML 表单验证在 Internet Explorer 9 或更早版本中不起作用。

数据验证

数据验证是确保用户输入干净、正确和有用的过程。

典型的验证任务可能包括:

  • 用户是否填写了所有必填字段
  • 用户是否输入了有效日期
  • 用户是否在数字字段中输入了文本
  • 用户输入的是否一个有效的邮箱

大多数情况下,数据验证的目的是确保用户输入正确。验证可以通过许多不同的方法定义,并以许多不同的方式部署。

服务器端验证由 Web 服务器在输入发送到服务器后执行。

在将输入发送到 Web 服务器之前,客户端验证由 Web 浏览器执行。

HTML 约束验证

HTML5 引入了一个新的 HTML 验证概念,称为约束验证。

HTML 约束验证基于:

  • 约束验证 HTML 输入属性
  • 约束验证 CSS 伪选择器
  • 约束验证 DOM 属性和方法

约束输入属性

下表中的元素属性可以提示输入值的要求。

属性 说明
disabled 指示元素是不可用的
max 指示输入框可输入的最大值
min 指示输入框可输入的最小值
pattern 指示输入框输入的内容需要匹配的正则表达式模式
required 指示输入内容必须的
type 指示输入框输入内容的类型

如需查看完整列表,请访问 HTML 表单属性章节。

约束验证 CSS 伪选择器

以下 CSS 伪选择可以根据元素的状态选择元素。

选择器 说明
:disabled 选择不可用的输入元素
:invalid 选择验证不通过的输入元素
:optional 选择那些没有 required 属性的输入元素
:required 选择那些有 required 属性的输入元素
:valid 选择验证通过的输入元素

如需查看完整列表,请访问CSS 伪类章节。