JavaScript表单验证的两种实现方法
本文实例为大家分享了js表单验证的实现方法,供大家参考,具体内容如下
第一种:js表单验证
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册-个人用户</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <script src="//cdn.bootcss.com/jquery/3.0.0-beta1/jquery.js"></script> <style> body { font-family: Arial, "宋体", Lucida, Verdana, Helvetica, sans-serif; font-size: 12px; color: #333; line-height: 150%; background: #f2f2f2; } .hide{display:none;} .focus,.error { color: #e4393c; line-height: 36px; height: 36px; position: absolute; top: 0px; width: 260px; padding: 0 5px; background: #FFEBEB; border: 1px solid #ffbdbe; } .error span,.focus span { padding: 5px 0; line-height: 13px; display: block; } .focus { color: #666; width: 260px;; line-height: 36px; background: #f7f7f7; border: 1px solid #dddddd; } .regist { width: 990px; padding: 0; margin: 0 auto; zoom: 1; } .mc { padding: 30px 0 20px; border: solid #dddddd; border-width : 0px 1px 1px; background: #FFF; overflow: hidden; zoom: 1; border-width: 0px 1px 1px; } .form { float: left; width: 750px; font-size: 12px; } .form label,.form input,.form select,.form textarea,.form button,.form .label { float: left; font-size: 12px; } .item { padding-top: 9px; height: 60px; line-height: 34px; position: relative; z-index: 1; } .label { float: left; width: 190px; text-align: right; font-size: 14px; color: #999; padding-right: 10px; } .input { float: left; position: relative; width: 270px; overflow: visible; } .text { float: none; width: 275px; height: 37px; line-height: 32px; border: 1px solid #cccccc; font-size: 14px; font-family: arial, "宋体"; overflow: hidden; } </style> </head> <body> <p class="regist"> <p class="mc"> <form id="personRegForm" class="form" action="login.html" method="POST" onsubmit="return validateForm();"> <p class="item"> <span class="label">用户名:</span> <p class="input"> <input type="text" id="username" name="username" class="text"> <label id="username_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label">请设置密码:</span> <p class="input"> <input type="password" id="password" name="password" class="text"> <label id="pwd_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label">请确认密码:</span> <p class="input"> <input type="password" id="pwdRepeat" name="pwdRepeat" class="text"> <label id="pwdRepeat_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label">验证邮箱:</span> <p class="input"> <input type="text" id="mail" name="mail" class="text"> <label id="mail_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label"> </span> <input type="submit" class="btn-img" id="registsubmit" value="立即注册" /> </p> </form> </p> </p> <script> window.onload = function(){ // 1. 用户名 $("#username").focus(function(){ /* 获取焦点 var username_msg = $("#username_msg"); username_msg.text("4-20位字符,支持英文、数字及'-'、'_'组合"); username_msg.attr("class","focus"); */ elemFocus("username_msg","4-20位字符,支持英文、数字及'-'、'_'组合"); }).blur(userValidator); // 2. 密码 $("#password").focus(function(){ elemFocus("pwd_msg","6-20位字符,可使用字母、数字的组合"); }).blur(pwdValidator); // 3. 确认密码 $("#pwdRepeat").focus(function(){ elemFocus("pwdRepeat_msg","6-20位字符,可使用字母、数字的组合"); }).blur(pwdRepeatValidator); // 4. Email $("#mail").focus(function(){ elemFocus("mail_msg","完成验证后,可以使用该邮箱登录和找回密码"); }).blur(emailValidator); } // 定义函数 - 通用的信息提示 function elemFocus(eleId,text){ var ele_msg = $("#"+eleId); ele_msg.text(text); ele_msg.attr("class","focus"); } // 定义验证用户名的函数 function userValidator(){ // 获取用户名输入的值 var value = $("#username").val(); // 获取用于显示提示信息的元素 var username_msg = $("#username_msg"); // 验证逻辑 if(value==""||value==null){ username_msg.text("用户名不能为空"); username_msg.attr("class","error"); return false; }else if(value.length<4||value.length>20){ username_msg.text("用户名的长度不正确"); username_msg.attr("class","error"); return false; }else if(!/^[a-zA-Z0-9-_]{4,20}$/.test(value)){ username_msg.text("用户名输入不正确"); username_msg.attr("class","error"); return false; } // 验证通过修改正确样式 if(!username_msg.hasClass("hide")){ username_msg.text(""); username_msg.attr("class","hide"); } return true; } // 定义验证密码的函数 function pwdValidator(){ var value = $("#password").val(); var pwd_msg = $("#pwd_msg"); if(value==""||value==null){ pwd_msg.text("密码不能为空"); pwd_msg.attr("class","error"); return false; }else if(value.length<6||value.length>20){ pwd_msg.text("密码的长度不正确"); pwd_msg.attr("class","error"); return false; }else if(!/^[a-zA-Z0-9]{6,20}$/.test(value)){ pwd_msg.text("密码输入不正确"); pwd_msg.attr("class","error"); return false; } if(!pwd_msg.hasClass("hide")){ pwd_msg.text(""); pwd_msg.attr("class","hide"); } return true; } // 定义确认密码验证的函数 function pwdRepeatValidator(){ var value = $("#pwdRepeat").val(); var pwdRepeat_msg = $("#pwdRepeat_msg"); var pwd = $("#password").val(); if(value==""||value==null){ pwdRepeat_msg.text("密码不能为空"); pwdRepeat_msg.attr("class","error"); return false; }else if(value.length<6||value.length>20){ pwdRepeat_msg.text("密码的长度不正确"); pwdRepeat_msg.attr("class","error"); return false; }else if(!/^[a-zA-Z0-9]{6,20}$/.test(value)){ pwdRepeat_msg.text("密码输入不正确"); pwdRepeat_msg.attr("class","error"); return false; }else if(value != pwd){ pwdRepeat_msg.text("两次密码输入不一致"); pwdRepeat_msg.attr("class","error"); return false; } if(!pwdRepeat_msg.hasClass("hide")){ pwdRepeat_msg.text(""); pwdRepeat_msg.attr("class","hide"); } return true; } // 定义Email验证的函数 function emailValidator(){ var value = $("#mail").val(); var email_msg = $("#mail_msg"); if(value==""||value==null){ email_msg.text("Email不能为空"); email_msg.attr("class","error"); return false; }else if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value)){ email_msg.text("Email格式不正确"); email_msg.attr("class","error"); return false; } if(!email_msg.hasClass("hide")){ email_msg.text(""); email_msg.attr("class","hide"); } return true; } function validateForm(){ if(!userValidator()||!pwdValidator()||!pwdRepeatValidator()||!emailValidator()){ return false; } return true; } </script> </body> </html>
第二种:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <style> * { padding: 0; margin: 0; } form { width: 570px; height: 300px; margin: 100px auto; } label { width: 64px; float: left; clear: left; height: 36px; line-height: 36px; margin-top: 10px; } input { width: 300px; height: 36px; line-height: 36px; margin-top: 10px; text-indent: 8px; font-size: 16px; font-family: "微软雅黑"; border: 1px solid #ccc; float: left; } #sub { width: 302px; height: 40px; border: 1px solid #ccc; background: #888; color: #fff; font-size: 18px; text-indent: 0; } .spa { height: 36px; line-height: 36px; width: 204px; display: inline-block; float: left; font-size: 12px; color: #BD362F; text-indent: 10px; margin-top: 10px; } </style> </head> <body> <form action="" method="post"> <label id="name">姓 名:</label><input type="text" name="username" id="username" value="" placeholder="请输入姓名" /><span class="spa spa1"></span><br /> <label id="phone">手机号:</label><input type="text" name="userphone" id="userphone" value="" placeholder="请输入手机号" /><span class="spa spa2"></span><br /> <label id="address">地 址:</label><input type="text" name="useraddress" id="useraddress" value="" placeholder="请输入地址" /><span class="spa spa3"></span><br /> <label> </label><input type="submit" value="注册" id="sub" /> </form> <script src="http://code.jquery.com/jquery-1.4.1.js"></script> <script type="text/javascript"> window.onload = function() { $("#username").focus() } /************************ 失焦判断 **********************************/ $("input").blur(function() { $(".spa").css("color", "#BD362F") if($(this).is("#username")) { //姓名判断 var na = /^[\u4E00-\u9FA5]{2,4}$/ if($("#username").val() != "") { if(!(na.test($("#username").val()))) { $(".spa1").text("请输入2-4个汉字"); $(this).css("border", "1px solid #BD362F") return false; } else if(na) { $(".spa1").text(""); return true; } } else { $(".spa1").text(""); } } if($(this).is("#userphone")) { //手机号判断 var ph = /^1[3|5|7|8|][0-9]{9}$/ if($("#userphone").val() != "") { if(!(ph.test($("#userphone").val()))) { $(".spa2").text("请输入正确手机号"); $(this).css("border", "1px solid #BD362F") return false; } else if(ph) { $(".spa2").text(""); return true; } } else { $(".spa2").text(""); } } if($(this).is("#useraddress")) { //地址判断 var ad = /^(?=.*?[\u4E00-\u9FA5])[\dA-Za-z\u4E00-\u9FA5]{8,32}/; if($("#useraddress").val() != "") { if(!(ad.test($("#useraddress").val()))) { $(".spa3").text("请输入正确地址"); $(this).css("border", "1px solid #BD362F") return false; } else if(ad) { $(".spa3").text(""); return true; } } else { $(".spa3").text(""); } } }) /********************** 聚焦提示 ************************/ $("input").focus(function() { if($(this).is("#username")) { $(".spa1").text("四个汉字").css("color", "#aaa") $(this).css("border", "1px solid #aaa") } if($(this).is("#userphone")) { $(".spa2").text("11位手机号码").css("color", "#aaa") $(this).css("border", "1px solid #aaa") } if($(this).is("#useraddress")) { $(".spa3").text("最少8个字符(汉字、字母和数字)").css("color", "#aaa") $(this).css("border", "1px solid #aaa") } }) /*********************** 提交验证 ***************************/ $("#sub").click(function() { var na = /^[\u4E00-\u9FA5]{2,4}$/; //姓名正则 var ph = /^1[3|5|7|8|][0-9]{9}$/; //手机号正则 var ad = /^(?=.*?[\u4E00-\u9FA5])[\dA-Za-z\u4E00-\u9FA5]{8,32}/; //地址正则 if(na.test($("#username").val()) && ph.test($("#userphone").val()) && ad.test($("#useraddress").val())) { return true; } else { if($("#username").val() == "") { $(".spa1").text('请你填写用户名') } if($("#userphone").val() == "") { $(".spa2").text('请你填写手机号') } if($("#useraddress").val() == "") { $(".spa3").text('请你填写地址') } return false; } }) </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。
更多JavaScript表单验证的两种实现方法相关文章请关注PHP中文网!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

如何使用PHP和JS创建股票蜡烛图股票蜡烛图是股票市场中常见的一种技术分析图形,通过绘制股票的开盘价、收盘价、最高价和最低价等数据,帮助投资者更直观地了解股票的价格波动情况。本文将教你如何使用PHP和JS创建股票蜡烛图,并附上具体的代码示例。一、准备工作在开始之前,我们需要准备以下环境:1.一台运行PHP的服务器2.一个支持HTML5和Canvas的浏览器3

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤,需要具体代码示例随着互联网和科技的快速发展,股票交易已经成为许多投资者的重要途径之一。而股票分析是投资者决策的重要一环,其中蜡烛图被广泛应用于技术分析中。学习如何使用PHP和JS绘制蜡烛图将为投资者提供更多直观的信息,帮助他们更好地做出决策。蜡烛图是一种以蜡烛形状来展示股票价格的技术图表。它展示了股票价格的

如何使用JS和百度地图实现地图点击事件处理功能概述:在Web开发中,经常需要使用地图功能来展示地理位置和地理信息。而地图上的点击事件处理是地图功能中常用且重要的一部分。本文将介绍如何使用JS和百度地图API来实现地图的点击事件处理功能,并给出具体的代码示例。步骤:导入百度地图的API文件首先,要在HTML文件中导入百度地图API的文件,可以通过以下代码实现:

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

随着互联网金融的迅速发展,股票投资已经成为了越来越多人的选择。而在股票交易中,蜡烛图是一种常用的技术分析方法,它能够显示股票价格的变化趋势,帮助投资者做出更加精准的决策。本文将通过介绍PHP和JS的开发技巧,带领读者了解如何绘制股票蜡烛图,并提供具体的代码示例。一、了解股票蜡烛图在介绍如何绘制股票蜡烛图之前,我们首先需要了解一下什么是蜡烛图。蜡烛图是由日本人

js和vue的关系:1、JS作为Web开发基石;2、Vue.js作为前端框架的崛起;3、JS与Vue的互补关系;4、JS与Vue的实践应用。
