js表单验证实例讲解


Posted in Javascript onMarch 31, 2016

本文实例为大家分享了js表单验证,供大家参考,具体内容如下

JavaScript 可用来在数据被送往服务器前对HTML 表单中的这些输入数据进行验证。
被JavaScript 验证的这些典型的表单数据有:
1)、用户是否已填写表单中的必填项目?
2)、用户输入的邮件地址是否合法?
3)、用户是否已输入合法的日期?
4)、用户是否在数据域 (numeric field) 中输入了文本?

 gspan.html

<html>
<head>
  <title>表单验证实例</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script src="check.js" type="text/javascript"></script>
  <style>
    span{ font-size:12px; }
    .stats1{ color : #ccc; }
    .stats2{ color :black; }
    .stats3{ color :red; }
    .stats4{ color :green; }
 
  </style>
</head>
<body>
  <form method="post" action="reg.php" onsubmit="return regs('click')" >
    用户名:<input type="text" name="username" /><span class="stats1">用户名不能为空</span><br/>
    邮箱:<input type="text" name="email" /><span class="stats1">邮箱不能为空</span><br/>
    密码:<input type="password" name="password" /><span class="stats1">密码不能为空</span><br/>
    确认密码:<input type="password" name="chkpass" /><span class="stats1">密码不能为空</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 = 'stats2';
  }
 
  obj.onblur = function(){
    if (fun(this.value)){
      sp.innerHTML = "输入正确!";
      sp.className = "stats4";
    } else {
      sp.innerHTML = info;
      sp.className = "stats3";
    }
  }
 
  if (click == 'click'){
    obj.onblur();
  }
}
 
onload = regs;   //页面载入完执行
 
function regs(click){
  var stat = true;    //返回状态, 提交数据时用到
  username = document.getElementsByName('username')[0];
  password = document.getElementsByName('password')[0];
  chkpass = document.getElementsByName('chkpass')[0];
  email = document.getElementsByName('email')[0];
   
  check(username, "用户名的长度在3-20之间", function(val){
    if (val.match(/^\S+$/) && val.length >=3 && val.length <=20){
      return true;
    } else {
      stat = false;
      return false;
    }
  }, click);
 
  check(password, "密码必须在6-20位之间", function(val){
    if (val.match(/^\S+$/) && val.length >= 6 && val.length <=20){
      return true;
    } else {
      stat = false;
      return false;
    }
  }, click);
 
   
  check(chkpass, "确定密码要和上面一致,规则也要相同", function(val){
    if (val.match(/^\S+$/) && val.length >=6 && val.length <=20 && 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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JS+CSS简单树形菜单实现方法
Sep 12 Javascript
javascript Slip.js实现整屏滑动的手机网页
Nov 25 Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 Javascript
下雪了 javascript实现雪花飞舞
Aug 02 Javascript
vue实现添加标签demo示例代码
Jan 21 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
js微信应用场景之微信音乐相册案例分享
Aug 11 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
React数据传递之组件内部通信的方法
Dec 31 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
js实现页面图片消除效果
Mar 24 Javascript
javascript创建cookie、读取cookie
Mar 31 #Javascript
基于javascript实现全屏漂浮广告
Mar 31 #Javascript
JS深度拷贝Object Array实例分析
Mar 31 #Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 #Javascript
JavaScript笔记之数据属性和存储器属性
Mar 31 #Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 #Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 #Javascript
You might like
使PHP自定义函数返回多个值
2006/11/26 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python中的闭包详细介绍和实例
2014/11/21 Python
Python简单进程锁代码实例
2015/04/27 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python ORM编程基础示例
2020/02/02 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
文员的职业生涯规划发展方向
2014/02/08 职场文书
农村党员干部承诺书
2015/05/04 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
使用Python解决图表与画布的间距问题
2022/04/11 Python