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 select选中的一个小问题
Oct 11 Javascript
详细讲解JS节点知识
Jan 31 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
基于jquery.page.js实现分页效果
Jan 01 jQuery
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
Node.js 使用jade模板引擎的示例
May 11 Javascript
微信小程序实现倒计时调用相机自动拍照功能
Jun 10 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
详解vue组件之间的通信
Aug 30 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
JQuery1.6 使用方法三
2011/11/23 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
连接Python程序与MySQL的教程
2015/04/29 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
Django中的Signal代码详解
2018/02/05 Python
使用Python来开发微信功能
2018/06/13 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
flask-restful使用总结
2018/12/04 Python
python中几种自动微分库解析
2019/08/29 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
护士自我评价范文
2014/01/25 职场文书
渡河少年教学反思
2014/02/12 职场文书
元旦联欢会主持词
2014/03/26 职场文书
入股协议书范本
2014/11/01 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
工作报告范文
2019/06/20 职场文书
SQL Server中使用表变量和临时表
2022/05/20 SQL Server