谁能告诉我 thechange
和input
events之间的区别是什么?
我正在使用 jQuery 添加它们:
$('input[type="text"]').on('change', function() {
alert($(this).val());
})
它也适用于input
代替change
。
也许事件排序相对于焦点有一些不同?
谁能告诉我 thechange
和input
events之间的区别是什么?
我正在使用 jQuery 添加它们:
$('input[type="text"]').on('change', function() {
alert($(this).val());
})
它也适用于input
代替change
。
也许事件排序相对于焦点有一些不同?
根据这篇文章:
oninput
当元素的文本内容通过用户界面更改时发生。
onchange
在选择,检查状态或元素的内容发生变化时发生。在某些情况下,它仅在元素失去焦点或按下return(Enter) 且值已更改时发生。该onchange属性可以使用:<input>
,<select>
,和<textarea>
。
特尔;博士:
oninput
: 对文本内容所做的任何更改onchange
:
<input />
:改变+失去焦点<select>
:更改选项$("input, select").on("input", function () {
$("pre").prepend("\nOn input. | " + this.tagName + " | " + this.value);
}).on("change", function () {
$("pre").prepend("\nOn change | " + this.tagName + " | " + this.value);
}).on("focus", function () {
$("pre").prepend("\nOn focus | " + this.tagName + " | " + this.value);
}).on("blur", function () {
$("pre").prepend("\nOn blur | " + this.tagName + " | " + this.value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<select>
<option>Alice</option>
<option>Bob</option>
<option>Carol</option>
<option>Dave</option>
<option>Emma</option>
</select>
<pre></pre>
在change
event
大多数浏览器火灾时,内容变更和元素丢失focus
。它基本上是变化的集合。它不会像这种情况那样为每一次更改触发input
event
。
在input
event
火上同步为元素的含量变化。因此,事件侦听器往往会更频繁地触发。
不同的浏览器并不总是同意是否应该为某些类型的交互触发更改事件
这两个事件之间最显著的区别是什么原因引起的value
上的变化<input>
。
根据MDN:
又名,的
input
事件触发时value
的<input>
,<select>
或<textarea>
元件已被更改。
input
触发任何时间的value
变化。change
有点复杂:
换句话说,当用户提交对元素的更改时,
change
将针对<input>
、<select>
和<textarea>
元素触发该事件value
。与input
事件不同的change
是,不一定每次更改元素的value
.
change
当用户更改value
.当正是它激发依赖于type
的<input>
:
为了...
:checked
,通过键盘或鼠标单击公平警告,浏览器是善变的,并不总是在事件上达成一致。然而,这确实是规范,您应该能够依靠这些时间。
MDN 文档有明确的解释(不确定是什么时候添加的):
当用户提交对元素值的更改时,将针对
input
、select
和textarea
元素触发 change 事件。与 input 事件不同,change 事件不一定会在每次更改元素值时触发。
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event