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 相关文章推荐
JavaScript 动态将数字金额转化为中文大写金额
May 14 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
Sep 29 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
利用Angular.js限制textarea输入的字数
Oct 20 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 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(3) php 函数
2010/02/15 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
异步加载script的代码
2011/01/12 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python 创建子进程模块subprocess详解
2015/04/08 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
django 环境变量配置过程详解
2019/08/06 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
python IDLE添加行号显示教程
2020/04/25 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
详解python tcp编程
2020/08/24 Python
python中time.ctime()实例用法
2021/02/03 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
Whistles官网:英国女装品牌
2020/08/14 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
技术总监岗位职责
2013/12/05 职场文书
高中军训感言1000字
2014/03/01 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
法制教育演讲稿
2014/09/10 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python