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 10 Javascript
基于jquery的大众点评,分类导航实现代码
Aug 23 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
除Console.log()外更多的Javascript调试命令
Jan 24 Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 Javascript
js中offset,client , scroll 三大元素知识点总结
Sep 11 Javascript
uni-app如何实现增量更新功能
Jan 03 Javascript
js实现蒙版效果
Jan 11 Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 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
删除无限级目录与文件代码共享
2006/07/12 PHP
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
用Python实现一个简单的线程池
2015/04/07 Python
简单介绍Python中的JSON使用
2015/04/28 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Python sorted对list和dict排序
2020/06/09 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
餐饮营销方案
2014/02/23 职场文书
岗位说明书标准范本
2014/07/30 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技