目录
JavaScript 表单验证
以下实例代码用于判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
function validateForm() {
var x = document.forms["myForm"]["name"].value;
if(x==null || x==""){
alert("请输入名字");
return false;
}
}
</script>
</head>
<body>
<form name="myForm" action="/login" onsubmit="return validateForm()" method="post">
名字:<input type="text" name="name" id="name">
<input type="submit" value="提交">
</form>
</body>
</html>
</html>
运行结果:
JavaScript 验证输入的数字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script>
function add() {
var x, text;
x = document.getElementById("numb").value;
if (x >= 1 && x <= 10) {
text = "输入正确";
} else {
text = "输入错误";
}
document.getElementById("demo").innerHTML = text;
}
</script>
<body>
<input id="numb">
<button type="button" onclick="add()">提交</button>
<p id="demo"></p>
</body>
</html>
运行结果:
HTML 表单自动验证
HTML 表单验证也可以通过浏览器来自动完成。
如果表单字段 (fname) 的值为空, required 属性会阻止表单提交
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form name="myForm" action="/login" method="post">
名字:<input type="text" name="name" required>
<input type="submit" value="提交">
</form>
</body>
</html>
运行结果:
E-mail 验证
下面的函数检查输入的数据是否符合电子邮件地址的基本语法。
意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script>
function validateForm() {
var x = document.forms["myForm"]["name"].value;
var a = x.indexOf("@");
var b = x.indexOf(".");
if (a < 1 || b < a + 2 || b + 2 >= x.length) {
alert("邮箱地址有误,请重新输入!");
return false;
}
}
</script>
<body>
<form name="myForm" action="/login" onsubmit="return validateForm()" method="post">
email:<input type="text" name="name" >
<input type="submit" value="提交">
</form>
</body>
</html>
数据验证
数据验证用于确保用户输入的数据是有效的。
典型的数据验证有:
必需字段是否有输入?
用户是否输入了合法的数据?
在数字字段是否输入了文本?
大多数情况下,数据验证用于确保用户正确输入数据。
数据验证可以使用不同方法来定义,并通过多种方式来调用。
服务端数据验证是在数据提交到服务器上后再验证。
客户端数据验证是在数据发送到服务器前,在浏览器上完成验证。
HTML 约束验证
HTML5 新增了 HTML 表单的验证方式:约束验证(constraint validation)。
约束验证是表单被提交时浏览器用来实现验证的一种算法。
HTML 约束验证基于:
HTML 输入属性
CSS 伪类选择器
DOM 属性和方法
约束验证 HTML 输入属性
属性 | 描述 |
---|---|
disabled | 规定输入的元素不可用 |
max | 规定输入元素的最大值 |
min | 规定输入元素的最小值 |
pattern | 规定输入元素值的模式 |
required | 规定输入元素字段是必需的 |
type | 规定输入元素的类型 |
约束验证 CSS 伪类选择器
选择器 | 描述 |
---|---|
:disabled | 选取属性为 "disabled" 属性的 input 元素 |
:invalid | 选取无效的 input 元素 |
:optional | 选择没有"optional"属性的 input 元素 |
:required | 选择有"required"属性的 input 元素 |
:valid | 选取有效值的 input 元素 |