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 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
struts2 jquery 打造无限层次的树
Oct 23 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
Jul 15 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
深入分析JSONP跨域的原理
Dec 10 Javascript
javascript实现根据时间段显示问候语的方法
Jun 18 Javascript
jQuery简单注册和禁用全局事件的方法
Jul 25 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
React路由管理之React Router总结
May 10 Javascript
vue拖拽组件使用方法详解
Dec 01 Javascript
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
vue-i18n结合Element-ui的配置方法
May 20 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
php查询ip所在地的方法
2014/12/05 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PHP实现简易图形计算器
2020/08/28 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
简单了解python数组的基本操作
2019/11/26 Python
请解释流与文件有什么不同
2016/07/29 面试题
师范应届生求职信
2013/11/15 职场文书
安全标准化汇报材料
2014/02/03 职场文书
开业庆典主持词
2014/03/21 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
邀请函怎么写
2015/01/30 职场文书
区域经理岗位职责
2015/02/02 职场文书
Python基本数据类型之字符串str
2021/07/21 Python