(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)時纔有效

相關文章
相關標籤/搜索