DOM 验证学习笔记

DOM 验证是指通过 JavaScript 操作文档对象模型(DOM)中的元素和属性,实现表单验证、数据校验等功能。主要用于网页开发中对用户输入的数据进行合法性验证。

1. 表单验证

表单验证是 DOM 验证的重要应用之一,可以通过以下几种方式实现:

1.1 HTML5 验证属性

HTML5 新增了很多验证属性,例如 requiredmaxlengthminmax 等。这些属性可以在表单元素中设置,浏览器会自动校验用户输入的数据是否合法。例如:

htmlCopy Code
<input type="text" name="username" required maxlength="10">

上面的代码定义了一个文本输入框,要求用户必须输入内容,并且输入长度不超过 10 个字符。

1.2 JavaScript 验证

JavaScript 可以对表单进行更加灵活的验证,例如弹窗提示、动态修改样式、异步校验等。常见的做法是通过监听表单的 submit 事件,在事件处理函数中进行校验。例如:

htmlCopy Code
<form id="myform" onsubmit="return checkForm()"> <input type="text" name="username"> <input type="password" name="password"> <button type="submit">提交</button> </form> <script> function checkForm() { var username = document.forms["myform"]["username"].value; var password = document.forms["myform"]["password"].value; if (username == "" || password == "") { alert("用户名和密码不能为空!"); return false; } return true; } </script>

上面的代码定义了一个表单,要求用户输入用户名和密码,点击提交按钮后会触发 checkForm() 函数。该函数通过获取表单元素的值,判断用户名和密码是否为空,如果为空则弹出提示框并返回 false,否则表单提交成功。

2. 数据校验

除了表单验证外,DOM 验证还可以用于数据校验。例如对于一个数字输入框,需要保证用户输入的是一个合法的数字。常见的方式是通过正则表达式进行校验。例如:

htmlCopy Code
<input type="text" name="number" id="number"> <button onclick="checkNumber()">检查</button> <script> function checkNumber() { var number = document.getElementById("number").value; var reg = /^[0-9]+$/; if (!reg.test(number)) { alert("请输入一个合法的数字!"); } } </script>

上面的代码定义了一个数字输入框和一个检查按钮。按钮点击后会调用 checkNumber() 函数,该函数使用正则表达式判断用户输入的是否为一个合法的数字,如果不是则弹出提示框。

实例演示

下面是一个基于表单验证的实例演示。该实例要求用户输入用户名、密码和确认密码,并且两次输入的密码必须一致。如果校验通过,则弹出提示框并返回 true,否则弹出错误信息并返回 false。

htmlCopy Code
<form onsubmit="return checkForm()"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required><br> <label for="password">密码:</label> <input type="password" id="password" name="password" required><br> <label for="confirm">确认密码:</label> <input type="password" id="confirm" name="confirm" required><br> <button type="submit">注册</button> </form> <script> function checkForm() { var username = document.getElementById("username").value; var password = document.getElementById("password").value; var confirm = document.getElementById("confirm").value; if (password != confirm) { alert("两次输入的密码不一致!"); return false; } alert("注册成功!"); return true; } </script>

上述代码实现了一个简单的表单验证功能,通过了这个例子,你可以更好的了解 DOM 验证的基础应用。