(96)Wangdao.com_第二十九天_表单事件

表单事件浏览器

input 事件        select 事件        change 事件        invalid 事件        reset 事件         submit 事件服务器

input 事件app

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

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

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

  • 特色:

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

在元素的值发生变化后当即发生    orm

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

继承了 InputEvent 接口blog

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)时才有效

相关文章
相关标签/搜索