一个检测表单数据的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 相关文章推荐
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
JS格式化数字金额用逗号隔开保留两位小数
Oct 18 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
JQuery手速测试小游戏实现思路详解
Sep 20 Javascript
Javascript实现的StopWatch功能示例
Jun 13 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
Oct 15 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
jsonp实现百度下拉框功能的方法分析
May 10 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
vue的项目如何打包上线
Apr 13 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
orm获取关联表里的属性值
2016/04/17 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python利用微信公众号实现报警功能
2018/06/10 Python
值得收藏的10道python 面试题
2019/04/15 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
应聘面试自我评价
2014/01/24 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
房屋租赁意向书
2014/04/01 职场文书
保护环境倡议书500字
2014/05/19 职场文书
2014年保育员工作总结
2014/12/02 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
体育委员竞选稿
2015/11/21 职场文书