本文介绍如何使用JavaScript实现最简单的表单验证功能,即判断用户输入的表单项是否为空。通过监听提交按钮点击事件,检查指定输入框的值,若为空则弹出提示并聚焦当前字段,否则允许提交。
JavaScript简单表单非空验证实现
在各类需要注册或登录的网站中,表单验证几乎是不可或缺的功能。尽管有些验证逻辑非常复杂,包含多种格式要求,但本节仅介绍最基础的验证方式,即判断输入内容是否为空。对于部分对安全性或规范性要求较低的网站,这种简单的非空检查已能满足基本需求。
具体实现代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="https://www.jb51.net/" />
<title>js简单表单验证</title>
<script type="text/javascript">
window.onload=function()
{
var bt=document.getElementById("bt");
bt.onclick=function()
{
if(document.myform.name.value=="")
{
alert("用户名不能为空!");
document.myform.name.focus();
return false;
}
else if(document.myform.pw.value=="")
{
alert("密码不能为空!");
document.myform.pw.focus();
return false;
}
}
}
</script>
</head>
<body>
<form action="index.php" method="get" name="myform">
<ul>
<li>姓名:<input type="text" name="name" id="name" /></li>
<li>密码:<input type="text" name="pw" id="age" /></li>
<li><input type="submit" id="bt"/></li>
</ul>
</form>
</body>
</html>
上述代码实现了点击提交按钮时的基础表单验证逻辑。当用户提交表单时,程序会检查相关表单项的值。如果检测到某项为空,系统将弹出提示信息,并将光标焦点定位到该空表单项上。该示例代码结构简洁,旨在展示核心逻辑,更多细节可参考相关扩展阅读。
接下来,我们进一步查看一个更完整的JavaScript表单验证实例代码:
gspan.html
<html>
<head>
<title>表单验证实例</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-" />
<script src="check.js" type="text/javascript"></script>
<style>
span{ font-size:px; }
.stats{ color : #ccc; }
.stats{ color :black; }
.stats{ color :red; }
.stats{ color :green; }
</style>
</head>
<body>
<form method="post" action="reg.php" onsubmit="return regs('click')" >
用户名:<input type="text" name="username" /><span class="stats">用户名不能为空</span><br/>
邮箱:<input type="text" name="email" /><span class="stats">邮箱不能为空</span><br/>
密码:<input type="password" name="password" /><span class="stats">密码不能为空</span><br/>
确认密码:<input type="password" name="chkpass" /><span class="stats">密码不能为空</span><br/>
<input type="submit" />
</form>
</body>
</html>
check.js
function gspan(cobj){ //获取表单后的span 标签 显示提示信息
if (cobj.nextSibling.nodeName != 'SPAN'){
gspan(cobj.nextSibling);
} else {
return cobj.nextSibling;
}
}
//检查表单 obj【表单对象】, info【提示信息】 fun【处理函数】 click 【是否需要单击, 提交时候需要触发】
function check(obj, info, fun, click){
var sp = gspan(obj);
obj.onfocus = function(){
sp.innerHTML = info;
sp.className = 'stats';
}
obj.onblur = function(){
if (fun(this.value)){
sp.innerHTML = "输入正确!";
sp.className = "stats";
} else {
sp.innerHTML = info;
sp.className = "stats";
}
}
if (click == 'click'){
obj.onblur();
}
}
onload = regs; //页面载入完执行
function regs(click){
var stat = true; //返回状态, 提交数据时用到
username = document.getElementsByName('username')[];
password = document.getElementsByName('password')[];
chkpass = document.getElementsByName('chkpass')[];
email = document.getElementsByName('email')[];
check(username, "用户名的长度在-之间", function(val){
if (val.match(/^\S+$/) && val.length >= && val.length <=){
return true;
} else {
stat = false;
return false;
}
}, click);
check(password, "密码必须在-位之间", function(val){
if (val.match(/^\S+$/) && val.length >= && val.length <=){
return true;
} else {
stat = false;
return false;
}
}, click);
check(chkpass, "确定密码要和上面一致,规则也要相同", function(val){
if (val.match(/^\S+$/) && val.length >= && val.length <= && val == password.value){
return true;
} else {
stat = false;
return false;
}
}, click);
check(email, "请按邮箱规则输入", function(val){
if (val.match(/\w+@\w+\.\w/)){
return true;
} else {
stat = false;
return false;
}
}, click);
return stat;
}