一个检测表单数据的JavaScript实例


Posted in Javascript onOctober 31, 2014

一个检测表单数据的JavaScript实例,很简单,很实用,感兴趣的朋友可以看看

<!DOCTYPE html> 
  <html> 
  <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
  <title>每天一个JavaScript实例-检测表单数据</title> 
  <style> 
    [role="alert"]{ 
      background-color: #fcc; 
      font-weight: bold; 
      padding:5px; 
      border:1px dashed #000; 
    } 
    div{ 
      margin:10px 0; 
      padding:5px; 
      width:400px; 
      background-color: #fff; 
    } 
  </style> 
   
  <script> 
  window.onload = function(){ 
    document.getElementById("thirdfield").onchange = validateField; 
    document.getElementById("firstfield").onblur = mandatoryField; 
    document.getElementById("testform").onsubmit = finalCheck; 
  } 
  function validateField(){ 
    removeAlert(); 
    if(!isNaN(parseFloat(this.value))){ 
      resetField(this); 
    }else{ 
      badField(this); 
      generateAlert("You entered an invalid value in Third Field. only numeric values such as 105 or 3.45 are allowed"); 
    } 
  } 
  function removeAlert(){ 
    var msg = document.getElementById("msg"); 
    if(msg){ 
      document.body.removeChild(msg); 
    } 
  } 
  function resetField(elem){ 
    elem.parentNode.setAttribute("style","background-color:#fff"); 
    var valid = elem.getAttribute("aria-invalid"); 
    if(valid) elem.removeAttribute("aria-invalid"); 
  } 
  function badField(elem){ 
    elem.parentNode.setAttribute("style","background-color#fee"); 
    elem.setAttribute("aria-invalid","true"); 
  } 
  function generateAlert(txt){ 
    var txtNd = document.createTextNode(txt); 
    msg = document.createElement("div"); 
    msg.setAttribute("role","alert"); 
    msg.setAttribute("id","msg"); 
    msg.setAttribute("class","alert"); 
   
    msg.appendChild(txtNd); 
    document.body.appendChild(msg); 
  } 
   
  function mandatoryField(){ 
    removeAlert(); 
    if(this.value.length > 0 ){ 
      resetField(this); 
    }else{ 
      badField(this); 
      generateAlert("You must enter a value into First Field"); 
    } 
  } 
  function finalCheck(){ 
    //console.log("aaa"); 
    removeAlert(); 
   
    var fields =document.querySelectorAll('input[aria-invalid="true"]'); 
    //var fields =document.querySelectorAll("input[aria-invalid='true']");//错误!!! 
    console.log(fields); 
    if(fields.length > 0){ 
      generateAlert("You have incorrect fields entries that must be fixed before you can submit this form"); 
      return false; 
    } 
  } 
  </script> 
   
  </head> 
   
  <body> 
  <form id = "testform"> 
    <div> 
      <label for="firstfield">*first Field:</label><br /> 
      <input id="firstfield" name = "firstfield" type = "text" aria-required = "true" /> 
    </div> 
   
    <div> 
      <label for="secondfield">Second Field:</label><br /> 
      <input id="secondfield" name = "secondfield" type = "text" /> 
    </div> 
   
    <div> 
      <label for="thirdfield">Third Field(numeric):</label><br /> 
      <input id="thirdfield" name = "thirdfield" type = "text" /> 
    </div> 
   
    <div> 
      <label for="fourthfield">Fourth Field:</label><br /> 
      <input id="fourthfield" name = "fourthfield" type = "text" /> 
    </div> 
   
    <input type="submit" value = "Send Data" /> 
  </form> 
   
  </body> 
  </html>
Javascript 相关文章推荐
百度留言本js 大家可以参考下
Oct 13 Javascript
jQuery插件 tabBox实现代码
Feb 09 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
thinkphp 表名 大小写 窍门
Feb 01 Javascript
jquery可定制的在线UEditor编辑器
Nov 17 Javascript
快速使用Bootstrap搭建传送带
May 06 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
js实现数字递增特效【仿支付宝我的财富】
May 05 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
Nov 07 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 #Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
Oct 31 #Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 #Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 #Javascript
Thinkphp模板没有解析直接原样输出的解决方法
Oct 31 #Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 #Javascript
JsRender实用入门教程
Oct 31 #Javascript
You might like
屏蔽浏览器缓存另类方法
2006/10/09 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
confirm确认对话框的实现方法总结
2016/06/17 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
flask session组件的使用示例
2018/12/25 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
顺丰快递Java软件工程师面试题
2015/07/31 面试题
影子教师研修方案
2014/06/14 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python