html change 事件
The change event is fired for <input>, <select>, and <textarea> elements when a change to the element‘s value is committed by the user. Unlike the inputevent, the change event is not necessarily fired for each change to an element‘s value.
事件在元素input,select,textarea的内容由用户改变的时候触发,并且不像input事件每一次的改变都触发。
Description
Depending on the kind of form element being changed and the way the user interacts with the element, the change event fires at a different moment:
When the element is activated (by clicking or using the keyboard) for
<input type="radio">and<input type="checkbox">;When the user commits the change explicitly (e.g. by selecting a value from a
<select>‘s dropdown with a mouse click, by selecting a date from a date picker for<input type="date">, by selecting a file in the file picker for<input type="file">, etc.);When the element loses focus after its value was changed, but not commited (e.g. after editing the value of
<textarea>or<input type="text">).
Different browsers do not always agree whether a change event should be fired for certain types of interaction. For example, keyboard navigation in <select>elements never fires a change event in Gecko until the user hits Enter or switches the focus away from the <select> (see bug 126379).
描述
事件触发依赖于元素类型,触发方式以及触发不同时刻,如下所示
对于<input type=‘radio‘>和
<input type="checkbox">,元素激活时触发(通过点击或者键盘)用户明确提交更改(例如,鼠标点击选取select,从<input type="date">选取日期,从<input type="file">选取文件)元素失去焦点时内容以改变,但并未提交(例如
<textarea>或者<input type="text">)也会触发、
不同的游览器不保证特定类型的交互触发change事件。例如,在Gecko,除非用户点击enter或者从<select>移去焦点,通过键盘选取select将不会触发change事件。
引用:https://developer.mozilla.org/en-US/docs/Web/Events/change
**
怪不得很多change事件和预想的不一样。