mat*_*teo 5 html events standards dom onchange
我有点惊讶地发现,html 文档中的 onChange 事件在文本输入或文本区域上触发,而不是在其值实际更改时触发,而是仅在焦点离开元素时触发(当然,如果其值已更改) )。
所以我一直在寻找说明这一点的规范,但找不到。我可以找到数以百万计的教程来解释这一点,包括 W3Schools 的教程,但我找不到定义事件预计何时触发的标准。
在 HTML5 规范本身中,列出了事件的名称,但没有提及: http ://www.w3.org/html/wg/drafts/html/master/
在另一个规范“DOM level 3 事件规范”中,甚至没有提及: http: //www.w3.org/TR/DOM-Level-3-Events/
那么定义它的标准是什么?
W3C 4.01 规范的内在事件部分简要提到了这一点:
“
onchange当控件失去输入焦点并且自获得焦点后其值已被修改时,就会发生该事件”。
MSDN上也更广泛地提到了这一点:
“此事件在提交内容时触发,而不是在值更改时触发。例如,在文本框中,当用户键入时不会触发此事件,而是当用户通过离开文本框提交更改时触发此事件具有焦点。此外,
onblur当控件也失去焦点时,此事件会在指定的代码之前执行。”
最后,在MDN上:
根据要更改的表单元素的类型以及用户与元素交互的方式,更改事件会在不同的时刻触发:
- 当元素被激活(通过单击或使用键盘)
<input type="radio">并<input type="checkbox">;- 当用户显式提交更改时(例如,通过
<select>单击鼠标从 a 的下拉列表中选择一个值、从 的日期选择器中选择日期<input type="date">、在 的文件选择器中选择文件<input type="file">等);- 当元素在更改其值但未提交后失去焦点时(例如,在编辑
<textarea>或 的值之后<input type="text">)。
另一个潜在有用的链接 - WhatWg - 规范 - 更改事件。
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |