一个检测表单数据的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 相关文章推荐
学习YUI.Ext 第二天
Mar 10 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
html+css+js实现xp window界面及有关功能
Mar 26 Javascript
javascript实现数字验证码的简单实例
Feb 10 Javascript
jQuery超简单选项卡完整实例
Sep 26 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 Javascript
Three.js利用dat.GUI如何简化试验流程详解
Sep 26 Javascript
vue webpack实用技巧总结
Apr 24 Javascript
微信开发之微信jssdk录音功能开发示例
Oct 22 Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
js实现表格数据搜索
Aug 09 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
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
javascript之ESC(第二类混淆)
2007/05/06 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python网络编程实例简析
2014/09/26 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
详解python中的线程与线程池
2019/05/10 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
兼职学生的自我评价
2013/11/24 职场文书
销售会计工作职责
2013/12/02 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
工作迟到检讨书
2014/02/21 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
自我推荐信范文
2014/05/09 职场文书
新农村建设典型材料
2014/05/31 职场文书
思想品德评语大全
2014/12/31 职场文书
美术教师个人总结
2015/02/06 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
小兵张嘎观后感
2015/06/03 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js