表单事件

input 事件        select 事件        change 事件        invalid 事件        reset 事件         submit 事件

input 事件

<input>、<select>、<textarea>的值发生变化时触发

对于 复选框(<input type=checkbox>)单选框(<input type=radio>),用户改变选项时,也会触发这个事件

对于打开 contenteditable 属性的元素,只要值发生变化,也会触发 input 事件

  • 特点:

连续触发,比如用户每按下一次按键,就会触发一次 input 事件

在元素的值发生变化后立即发生

有连续变化,input 事件会触发多次,而 change 事件只在失去焦点时触发一次

继承了 InputEvent 接口

select 事件

当在<input>、<textarea>里面选中文本时触发

  • // HTML 代码如下
    // <input id="test" type="text" value="Select me!" /> var elem = document.getElementById('test');
    elem.addEventListener('select', function (e) {
    console.log(e.type); // "select"
    }, false);

选中的文本可以通过 event.target 元素的 selectionDirectionselectionEndselectionStartvalue 属性拿到

change 事件 

当<input>、<select>、<textarea>的值发生变化时触发。

它与 input 事件的最大不同,就是不会连续触发,只有当全部修改完成时才会触发,另一方面 input 事件必然伴随 change 事件。

  • 激活 单选框(radio)或 复选框(checkbox)时触发。
  • 用户提交时触发。        比如,从下列列表(select)完成选择,在日期或文件输入框完成选择。
  • 当文本框或<textarea>元素的值发生改变,并且丧失焦点时触发。
  • // HTML 代码如下
    // <select size="1" onchange="changeEventHandler(event);">
    // <option>chocolate</option>
    // <option>strawberry</option>
    // <option>vanilla</option>
    // </select> function changeEventHandler(event) {
    console.log(event.target.value);
    }

invalid 事件

用户提交表单时,如果表单元素的值不满足校验条件,就会触发 invalid 事件

  • // 输入框是必填的。如果不填,用户点击按钮提交时,就会触发输入框的invalid事件,导致提交被取消
    <form>
    <input type="text" required oninvalid="console.log('invalid input')" />
    <button type="submit">提交</button>
    </form>

reset 事件

这个事件发生在表单对象 <form> 上,而不是发生在表单的成员上

当表单重置(所有表单成员变回默认值)时触发

submit 事件

当表单数据向服务器提交时触发。

注意,submit事件的发生对象是 <form> 元素,而不是<button>元素,因为提交的是表单,而不是按钮

浏览器原生提供 InputEvent() 构造函数, 用来生成实例对象

InputEvent接口主要用来描述 input 事件的实例。

该接口继承了 Event 接口,还定义了一些自己的实例属性和实例方法。

  • var inputEvent = new InputEvent(type, options);

第一个参数 是字符串,表示事件名称,该参数是必需的。

第二个参数 是一个配置对象用来设置事件实例的属性,该参数是可选的。

配置对象的字段除了 Event 构造函数的配置属性,还可以设置下面的字段,这些字段都是可选的

  • inputType            字符串,表示发生变更的类型(详见下文)。
  • data            字符串,表示插入的字符串。如果没有插入的字符串(比如删除操作),则返回 null 或空字符串。
  • dataTransfer            返回一个 DataTransfer 对象实例,该属性通常只在输入框接受富文本输入时有效。

event.data

返回一个字符串,表示变动的内容

  • // HTML 代码如下
    // <input type="text" id="myInput">
    var input = document.getElementById('myInput');
    input.addEventListener('input', myFunction, false); function myFunction(e) {
    console.log(e.data);
    }

event.inputType

  • 返回一个字符串,表示字符串发生变更的类型
  • insertText           手动插入文本
  • insertFromPaste           粘贴插入文本
  • deleteContentBackward           向后删除
  • deleteContentForward           向前删除

event.dataTransfer

返回一个 DataTransfer 实例。

该属性只在文本框接受粘贴内容(insertFromPaste)拖拽内容(insertFromDrop)时才有效

(96)Wangdao.com_第二十九天_表单事件的更多相关文章

  1. (93)Wangdao.com_第二十六天_鼠标事件

    鼠标事件 与鼠标相关的事件,继承了 MouseEvent 接口 分类: click        按下鼠标(通常是按下主按钮)时触发.        mousedown 首先触发,mouseup 接着 ...

  2. JavaScript(第二十六天)【表单处理】

    为了分担服务器处理表单的压力,JavaScript提供了一些解决方案,从而大大打破了处处依赖服务器的局面.   一.表单介绍 在HTML中,表单是由<form>元素来表示的,而在JavaS ...

  3. (92)Wangdao.com_第二十五天_线程机制_H5 Web Workers 分线程任务_事件 Event

    浏览器内核 支撑浏览器运行的最核心的程序 IE 浏览器内核            Trident内核,也是俗称的IE内核Chrome 浏览器内核            统称为 Chromium 内核或 ...

  4. (94)Wangdao.com_第二十七天_键盘事件

    键盘事件 键盘事件由用户击打键盘触发 主要有 keydown.keyup .keypress三个事件,它们都继承了 KeyboardEvent 接口. keydown         按下键时 触发 ...

  5. 孤荷凌寒自学python第二十九天python的datetime.time模块

     孤荷凌寒自学python第二十九天python的datetime.time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.time模块是专门用来表示纯时间部分的类. ...

  6. SpringBoot(五)_表单验证

    SpringBoot(五)_表单验证 参数校验在我们日常开发中非常常见,最基本的校验有判断属性是否为空.长度是否符合要求等,在传统的开发模式中需要写一堆的 if else 来处理这些逻辑,很繁琐,效率 ...

  7. 前端(十五)—— JavaScript事件:绑定事件方式、事件的冒泡和默认事件、鼠标事件、键盘事件、表单 事件、文档事件、图片事件、页面事件

    JS事件:绑定事件方式.事件的冒泡和默认事件.鼠标事件.键盘事件.表单 事件.文档事件.图片事件.页面事件 一.事件的两种绑定方式 1.on事件绑定方式 document.onclick = func ...

  8. javascript中的常用表单事件用法

    下面介绍几种javascript中常用的表单事件: 一,onsubmit:表单中的确认按钮被点击时发生的事件,如下案例. 案例解析:弹出表单中提交的内容 <form name="tes ...

  9. jQuery基础(鼠标事件,表单事件,键盘事件,自定义事件 篇)

    1.jQuery鼠标事件之click与dbclick事件   方法一:$ele.click()(不带参数)   <div id="test">点击触发<div&g ...

随机推荐

  1. css中font-size为0的妙用(消除内联元素间的间隔)

    前言 <div> <input type="text"> <input type="button" value="提交& ...

  2. Mysql漏洞修复方法思路及注意事项

    [系统环境] 系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga)  +  5.7.16 MySQL Community Server  ...

  3. Geometric regularity criterion for NSE: the cross product of velocity and vorticity 3: $u\times \f{\om}{|\om|}\cdot \f{\vLm^\be u}{|\vLm^\be u|}$

    在 [Chae, Dongho; Lee, Jihoon. On the geometric regularity conditions for the 3D Navier-Stokes equati ...

  4. (二)Java工程化--Maven实践

    Maven项目版本号 默认版本号: 1.0-SNAPSHOT 最佳实践是约定该版本为不稳定版本,如果发布一定要删除; 建议的版本规则: 主版本号.次版本号.增量版本号- 如:1.0.0-RELEASE ...

  5. C/C++ 函数指针使用总结

    一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关.举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int ...

  6. dubbo负载均衡与集群集群容错

    1.负载均衡 在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用. 1.  负载均衡策略 Random LoadBalance 随机,按权重设置随机概率.(默认值)在一个 ...

  7. Lua中的协同程序

    [前言] 协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈.局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西.从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的 ...

  8. MS SQL Server 时间函数

    日期和时间数据类型 数据类型 存储(字节) 日期范围 精确度 格式示例 DateTime 8 1753年1月1日 - 9999年12月31日 3 1/3毫秒 yyyy-MM-dd hh:mm:ss.n ...

  9. vue-风格指南

    https://cn.vuejs.org/v2/style-guide/

  10. Java桥接模式

    定义:将抽象部分与它的具体实现部分分离,使他们都可以独立的变化 通过组合的方式建立两个类之间联系,而不是继承 类型:结构型 适用场景: 抽象和具体实现之间增加更多的灵活性 一个类存在两个(或多个)独立 ...