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 相关文章推荐
Jquery之美中不足小结
Feb 16 Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 Javascript
jquery自动填充勾选框即把勾选框打上true
Mar 24 Javascript
JavaScript实现的图像模糊算法代码分享
Apr 22 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
Jan 19 Javascript
JavaScript实现公历转农历功能示例
Feb 13 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
AngularJS 教程及实例代码
Oct 23 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 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
Zend公司全球首推PHP认证
2006/10/09 PHP
Wordpress php 分页代码
2009/10/21 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
原生js实现验证码功能
2017/03/16 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
python 性能提升的几种方法
2016/07/15 Python
python3编码问题汇总
2016/09/06 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python用post访问restful服务接口的方法
2018/12/07 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
Python实现元素等待代码实例
2019/11/11 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
学生会离职感言
2014/02/11 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript