JavaScript结合HTML5实现自定义表单验证
作者:异步漫步时间:2026-10-29 22:38:42浏览:447
本文介绍如何利用JavaScript结合HTML5特性实现表单验证。通过禁用浏览器默认验证,使用CSS控制错误提示样式,并编写JS逻辑调用checkValidity()方法,实现自定义的错误检测与标记,优化终端用户的交互体验。
表单验证概述
表单验证旨在为终端用户检测无效数据并标记错误,以此优化用户体验。
以下展示了浏览器自带的验证功能,该功能同样适用于移动端查看:
HTML结构实现
HTML部分代码结构如下:
HTML代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<title>html5 表单验证</title>
</head>
<body>
<form action="#" id="formValid" class="myform" novalidate="novalidate" onsubmit="return checkForm()">
<fieldset>
<div class="form-group">
<label for="name">名称</label>
<div>
<input type="text" class="form-control" id="name" name="name" required/>
<span class="form-error">不能为空</span>
</div>
</div>
<div class="form-group">
<label for="email">邮箱</label>
<div>
<input type="email" class="form-control" id="email" name="email" required/>
<span class="form-error">邮箱格式不正确</span>
</div>
</div>
<div class="form-group">
<label>省份</label>
<select name="province" class="form-control">
<option value="">请选择</option>
<option value="s">四川</option>
<option value="c">重庆</option>
</select>
</div>
<input type="submit" class="btn" value="提交"/>
</fieldset>
</form>
</body>
</html>
CSS样式控制
CSS部分用于定义表单样式及错误提示的显示逻辑:
CSS代码示例
fieldset{border: 0;}
.myform .form-control{
display: block;
padding: 5px;
width: 100%
}
.myform input:focus:invalid + .form-error{
display: inline;
}
.myform .form-error{
display: none;
position: absolute;
margin-top: .7em;
padding: 1px 2px;
color: #fff;
font-size: .875rem;
background: #f40;
}
.myform .form-error:after{
position: absolute;
content: "";
top: -.5em;
left: .5em;
z-index: 100;
display: inline-block;
width: 0;
height: 0;
vertical-align: middle;
border-bottom: .5em solid #f40;
border-right: .5em solid transparent;
border-left: .5em solid transparent;
border-top: 0 dotted;
transform: rotate(360deg);
overflow: hidden;
}
.btn{
padding: 5px 20px;
}
JavaScript验证逻辑
JavaScript部分负责具体的验证逻辑处理:
JavaScript代码示例
function checkForm(){
var myform = document.getElementById("formValid");
return check(myform.elements);
}
function check(eles){
var ele;
for(var i = 0;i<eles.length;i++){
ele = eles[i];
if(ele.nodeName == "SELECT"){
if(!ele.selectedIndex){
alert("请选择省份");
return false;
}
}else if(ele.name){
if(!ele.checkValidity()){
ele.focus();
return false;
}
}
}
return true;
}
上述即为JavaScript结合HTML5实现表单验证的完整代码,希望对学习有所帮助。
作者最新文章
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
