表單事件瀏覽器
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 元素的 selectionDirection、selectionEnd、selectionStart 和 value 屬性拿到
change 事件
當<input>、<select>、<textarea>的值發生變化時觸發。
它與 input 事件的最大不一樣,就是不會連續觸發,只有當所有修改完成時纔會觸發,另外一方面 input 事件必然伴隨 change 事件。
// 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 接口,還定義了一些本身的實例屬性和實例方法。
第一個參數 是字符串,表示事件名稱,該參數是必需的。
第二個參數 是一個配置對象,用來設置事件實例的屬性,該參數是可選的。
配置對象的字段除了 Event 構造函數的配置屬性,還能夠設置下面的字段,這些字段都是可選的
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
event.dataTransfer
返回一個 DataTransfer 實例。
該屬性只在文本框接受粘貼內容(insertFromPaste)或拖拽內容(insertFromDrop)時纔有效