我有点惊讶地发现,html 文档中的 onChange 事件在文本输入或文本区域上触发,而不是在其值实际更改时触发,而是仅在焦点离开元素时触发(当然,如果其值已更改) )。
所以我一直在寻找说明这一点的规范,但找不到。我可以找到数以百万计的教程来解释这一点,包括 W3Schools 的教程,但我找不到定义事件预计何时触发的标准。
在 HTML5 规范本身中,列出了事件的名称,但没有提及:http://www.w3.org/html/wg/drafts/html/master/ http://www.w3.org/html/wg/drafts/html/master/
在另一个规范“DOM level 3 Events Specific”中,甚至没有提及:http://www.w3.org/TR/DOM-Level-3-Events/ http://www.w3.org/TR/DOM-Level-3-Events/
那么定义它的标准是什么?
中简要提到了内在事件部分 of the W3C 4.01 规范 http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.3:
"The onchange
当控件失去输入焦点及其
自从获得焦点以来,值已被修改”。
它也被更广泛地提到MSDN http://msdn.microsoft.com/en-us/library/windows/apps/hh441307.aspx:
“此事件在提交内容时触发,而不是在提交内容时触发
价值正在改变。例如,在文本框上,不会触发此事件
当用户打字时,而是当用户提交更改时
保留具有焦点的文本框。
另外,该事件在由指定的代码之前执行onblur
当控制也
失去焦点。”
最后,关于MDN https://developer.mozilla.org/en-US/docs/Web/Reference/Events/change:
取决于要更改的表单元素的类型和方式
用户与元素交互,更改事件在
不同时刻:
- 当元素被激活时(通过单击或使用键盘)
<input type="radio">
and <input type="checkbox">;
- 当用户明确提交更改时(例如,通过从
<select>
单击鼠标的下拉菜单,从日期选择器中选择日期<input type="date">
,通过选择一个文件
在文件选择器中<input type="file">
, etc.);
- 当元素在其值被更改但未提交后失去焦点时(例如,在编辑
<textarea>
or <input type="text">
).
另一个可能有用的链接 -WhatWg - 规范 - 更改事件。 http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#event-input-change
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)