假设有一个文本框,我们只允许用户输入数值。为此,我们希望:
1.利用focus事件修改文本框内容,
2.利用blur事件回复文本框的内容,
3.利用change事件在用户输入了非数值字符时再次修改背景颜色。

var EventUtil = {addHandler: function(element, type, handler) { // 跨浏览器的添加事件方法if ( element.addEventListener) {  // DOM2级事件处理程序element.addEventListener(type, handler, false); // 第3个参数表示在冒泡阶段添加} else if (element.attachEvent) {   // IE事件处理程序element.attachEvent("on" + type, handler);} else { // DOM0级事件处理程序element["on" + type] = handler;}},getEvent: function(event) { // 兼容获取事件return event ? event : window.event;},getTarget: function(event) { // 兼容获取目标return event.target || event.srcElement;}
};
// 利用上面的方法开始实现文本描述的功能
var textbox = document.forms[0].elements[0];  // 得到第一个表单的第一个元素(一般是Input)EventUtil.addHandler(textbox, "focus" , function(event) {  // 添加焦点事件event = EventUtil.getEvent(event);var target = EventUtil.getTarget(event);if (target.style.backgroundColor != "red"){target.style.backgroundColor = "yellow";}
});EventUtil.addHandler(textbox, "blur", function(event){event = EventUtil.getEvent(event);var target = EventUtil.getTarget(event);if (/[^\d]/.test(target.value)){  // 非字符target.style.backgroundColor = "red";} else {target.style.backgroundColor = "";}
});EventUtil.addHandler(textbox, "change", function(event){event = EventUtil.getEvent(event);var target = EventUtil.getTarget(event);if (/[^\d]/.test(target.value)){target.style.backgroundColor = "red";} esle {target.style.backgroundColor = "";}
});

摘自《JavaScript高级程序设计》(第三版) P418
ps:纯手打,出错私信我

JavaScript --- 表单focus,blur,change事件的实现相关推荐

  1. JavaScript表单事件 获取焦点:focus 失去焦点:blur 输入事件:input 变化事件:change

    JavaScript表单事件 焦点处理 焦点处理主要包括focus(获取焦点)和blur(失去焦点)事件类型.所谓焦点,就是激活表单字段,使其可以响应键盘事件. 获取焦点:focus 当单击或使用Ta ...

  2. JavaScript基础知识总结 17:JavaScript表单脚本

    目录 一.表单基础 二.提交表单 三.表单字段的公共属性.方法.事件 1.表单字段的公共属性 2.表单字段的公共方法 3.表单字段的公共事件 四.输入过滤,屏蔽字符 五.剪切板事件 六.自动切换 七. ...

  3. javascript 表单验证大全(一)

    javascript 表单验证大全(一) 5.身份证验证:包括15位和18位.function idNumber(s)//身份证验证 {regu1=/^[1-9]\d{7}((0\d)|(1[0-2] ...

  4. JavaScript 表单专题

    JavaScript 表单专题 访问表单的方式 访问form表单控件的方式 Form 表单对象 Form 对象集合 Form 对象属性 Form 对象方法 Form 对象事件句柄 单行文本框 Text ...

  5. html表单验证js代码,JavaScript表单验证实现代码

    JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证 JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输 ...

  6. javascript表单处理相关的知识总结(一)

    在HTML中,表单是由元素来表示的,而在JavaScript中,表单对应的则是HTMLFormElement类型.HTMLFormElement继承了HTMLElement,它拥有HTML元素具有的默 ...

  7. 15个最佳的 JavaScript 表单验证库

    客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...

  8. 15个非常实用的JavaScript表单验证库

    来源:web前端开发 https://mp.weixin.qq.com/s/p9s9cmAt2MZeCgmD2LC5Sg 客户端验证在任何项目都是不可缺少的,很多时候我们需要在用户提交到服务器之前给予 ...

  9. html自动验证邮件地址格式,JavaScript表单验证和邮箱格式验证的方法

    JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单 ...

最新文章

  1. 网站编程手册 服务器端,Peergine-P2P服务器端开发手册-v1.3.doc
  2. mysql 调试分析利器_使用systemtap调试工具分析MySQL的性能
  3. Android app:transformNativeLibsWithStripDebugSymbolForDebug错误分析
  4. python求两数之和的命令_python实现读取命令行参数的方法
  5. 目标检测(二)--Hough Forests for Object Detection
  6. 使用WinIO库实现保护模式下的IO和内存读写(_inp,_outp)
  7. 三步教你免费下载省,市,区县行政区Shp数据
  8. 【基于UML软件建模的选课系统】
  9. 最新推券客CMS淘宝客优惠券程序源码V3.6.1版
  10. IoT -- 物联网平台架构设计分析
  11. 密码学小知识(1):布隆过滤器(Bloom Filter)、混淆布隆过滤器(Garbled BF)和布谷鸟过滤器(Cuckoo Filter)
  12. el-descriptions文本水平垂直居中
  13. 贝叶斯公式求解公园凉鞋问题
  14. 根据关键词取商品列表API 返回值说明
  15. js实现公司年会抽奖活动(亲测可用)
  16. 软件工程作业--网上书店
  17. Linux网络与配置
  18. 从志愿军“断刀”再论敏捷之道(上篇)
  19. 二、操作系统实例列举
  20. PHP导出Excel文件时导出列的数字长度太长时显示不完整或者乱码显示

热门文章

  1. idea 代码格式化插件_IDEA非常棒的插件,阿里巴巴约定成文的代码公约规范
  2. 操作系统锁的实现方法有哪几种_「从入门到放弃-Java」并发编程-锁-synchronized...
  3. php调用md5.js,PHP和JS实现HTTP上安全地传输密码
  4. com口驱动_Ubuntu 安装Nvidia显卡驱动指南
  5. Unity 2017 Game Optimization 读书笔记 Dynamic Graphics(2)
  6. GPU Gems1 - 24 高质量的过滤
  7. 【TensorFlow-windows】name_scope与variable_scope
  8. OpenStack Telemetry系统架构及实践
  9. 华为交换机在Telnet登录下自动显示接口信息
  10. python-mysql 基础知识记录