一个检测表单数据的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 相关文章推荐
javascript的trim,ltrim,rtrim自定义函数
Sep 21 Javascript
一个基于jquery的图片切换效果
Jul 06 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
Sep 01 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
Oct 16 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
Jan 17 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
封装 axios+promise通用请求函数操作
Aug 11 Javascript
Vue页面渲染中key的应用实例教程
Jan 12 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
解析php中的escape函数
2013/06/29 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
理解PHP中的stdClass类
2014/04/18 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
Python requests模块session代码实例
2020/04/14 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
上级检查欢迎词
2014/01/18 职场文书
开门红主持词
2014/04/02 职场文书
建筑节能汇报材料
2014/08/22 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
文艺晚会开场白
2015/05/29 职场文书
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技