JavaScript 实现表单前端校验功能详解
作者:拾光时间:2026-10-24 14:24:36浏览:561
本文介绍如何使用 JavaScript 实现基础表单校验。通过绑定 onfocus、onblur 和 onkeyup 事件触发提示函数,并在 checkForm 中综合判断各字段合法性。当所有校验通过时允许提交,否则阻止表单提交,适用于基础的用户名、密码等字段验证场景。
JavaScript 表单校验实现概述
本文分享一段使用 JavaScript 实现表单校验功能的具体代码示例,供读者参考学习。
核心事件与校验逻辑
1、主要涉及以下三个事件:
onfocus(获取焦点事件)、onblur(失去焦点事件)以及 onkeyup(按键释放事件)。
2、通过事件触发相应的处理函数,在函数内部执行具体的校验逻辑。
3、利用 checkForm 函数判断表单内各项内容是否符合规范,若校验通过,则允许 submit 按钮提交表单数据。
实现效果如下:

HTML 表单部分代码如下:
HTML 表单结构示例
<form action="demo.html" onsubmit="return checkForm()">
<div>
<div class="text">
<p>用户名</p>
<input id="value" onfocus="shoeTips('hint','用户名长度不能小于六')" onblur="hint_hide()" onkeyup="hint()" type="text" Name="Userame" placeholder="用户名" />
<span id="hint"></span>
</div>
<div class="text">
<p>密码</p>
<input id="pass_value" onfocus="shoeTips('pass_hint','密码长度不能小于六')" onblur="pass_hide()" onkeyup="checkPass()" type="password" name="password" placeholder="密码" />
<span id="pass_hint"></span>
</div>
<div class="text">
<p>确认密码</p>
<input id="passpass_value" onfocus="shoeTips('passpass_hint','两次密码要一致')" onblur="passpass_hide()" onkeyup="checkPassPass()" type="password" name="password" placeholder="确认密码" />
<span id="passpass_hint"></span>
</div>
<div class="text">
<p>邮箱</p>
<input id="email" onfocus="shoeTips('email_hint','邮箱格式要正确')" onblur="emailHide()" onkeyup="emailCheck()" type="email" name="email" placeholder="邮箱" />
<span id="email_hint"></span>
</div>
<div class="text">
<p>手机号</p>
<input id="phone" type="text" onfocus="shoeTips('phone_hint','格式为十一位数字的手机号')" onblur="phoneHide()" onkeyup="phoneCheck()" Name="Phone" placeholder="手机号">
<span id="phone_hint"></span>
</div>
<div class="submit">
<input type="submit" value="提交" />
</div>
</div>
</form>
JavaScript 脚本部分代码如下:
JavaScript 验证函数实现
function shoeTips(spanId, tips) {
var span = document.getElementById(spanId);
span.innerHTML = tips;
}
/**
* 校验用户名
*/
function hint() {
var value = document.getElementById("value").value;
var hint = document.getElementById("hint");
if(value.length < 6) {
hint.innerHTML = "用户名太短";
return false;
} else {
hint.innerHTML = "用户名合格";
return true;
}
}
function hint_hide() {
var hint = document.getElementById("hint");
hint.innerHTML = "";
}
/**
* 校验密码
*/
function checkPass() {
var value = document.getElementById("pass_value").value;
var hint = document.getElementById("pass_hint");
if(value.length < 6) {
hint.innerHTML = "密码太短";
return false;
} else {
hint.innerHTML = "密码格式合格";
return true;
}
}
function pass_hide() {
var hint = document.getElementById("pass_hint");
hint.innerHTML = "";
}
/***
* 确认密码的校验
*/
function checkPassPass() {
var papavalue = document.getElementById("passpass_value").value;
var value = document.getElementById("pass_value").value;
var papahint = document.getElementById("passpass_hint");
if(papavalue != value) {
papahint.innerHTML = "两次密码不一致";
return false;
} else {
papahint.innerHTML = "";
return true;
}
}
function passpass_hide() {
var papahint = document.getElementById("passpass_hint");
papahint.innerHTML = "";
}
/**
* 校验邮箱
*/
function checkEmail(strEmail)
{
var emailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
if ( emailReg.test(strEmail) ) {
return true;
}
else {
// alert("您输入的Email地址格式不正确!");
return false;
}
};
function emailCheck() {
var emailValue = document.getElementById("email").value;
var email_hint = document.getElementById("email_hint");
var flag = checkEmail(emailValue);
if(flag) {
email_hint.innerHTML = "邮箱格式正确";
return true;
} else {
email_hint.innerHTML = "邮箱格式错误";
return false;
}
}
function emailHide() {
var email_hint = document.getElementById("email_hint");
email_hint.innerHTML = "";
}
/**
* 校验手机号
*/
function checkMobile( strMobile )
{ //13588888888
var regu = /^[1][345678][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(strMobile)) {
return true;
}
else {
return false;
}
};
function phoneCheck() {
var phone = document.getElementById("phone").value;
var phone_hint = document.getElementById("phone_hint");
var flag = checkMobile(phone);
if(flag) {
phone_hint.innerHTML = "手机号格式正确";
return true;
} else {
phone_hint.innerHTML = "手机号格式错误";
return false;
}
}
function phoneHide() {
var phone_hint = document.getElementById("phone_hint");
phone_hint.innerHTML = "";
}
function checkForm() {
var flag = emailCheck() && checkPass() && checkPassPass() && hint() && phoneCheck();
return flag;
}
以上就是本文的全部内容,希望对读者有所帮助,欢迎继续支持本站。
作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
