一个检测表单数据的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 实用简明教程之布局概述
Apr 29 Javascript
js parseInt(&quot;08&quot;)未指定进位制问题
Jun 19 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
JavaScript阻止回车提交表单的方法
Dec 30 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
Aug 16 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
Dec 08 Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 Javascript
Vue+Vux项目实践完整代码
Nov 30 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
javascript判断一个变量是数组还是对象
Apr 10 Javascript
微信小程序实现滚动加载更多的代码
Dec 06 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 Javascript
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笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Python单体模式的几种常见实现方法详解
2017/07/28 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python把转列表为集合的方法
2019/06/28 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
Python如何读取、写入CSV数据
2020/07/28 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
茶叶生产计划书
2014/01/10 职场文书
六十岁生日答谢词
2014/01/10 职场文书
马智宇结婚主持词
2014/04/01 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
python热力图实现的完整实例
2022/06/25 Python
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL