在什么样的authorative规范中,onChange事件被详尽地定义了?

时间:2013-06-26 20:11:36

标签: html5 events dom standards onchange

我有点惊讶地发现html文档中的onChange事件是在文本输入或textarea上触发的,而不是在其值实际发生变化的时刻,而是仅在焦点离开元素时(如果其值已更改) ,当然)。

所以我一直在寻找说明这一点的规范,而我却找不到它。我可以找到数以百万计的教程来解释这些,包括W3Schools的教程,但我找不到定义事件何时被解雇的标准。

在HTML5规范本身中,列出了事件的名称,但没有任何说明: http://www.w3.org/html/wg/drafts/html/master/

在另一个规范“DOM 3级事件规范”中,甚至没有提到: http://www.w3.org/TR/DOM-Level-3-Events/

那么定义它的标准是什么?

1 个答案:

答案 0 :(得分:3)

W3C 4.01 specification 内在事件部分 中简要提及:

  

“当控件丢失输入焦点及其时,会发生onchange事件   自获得焦点以来,价值已被修改“。

MSDN上也提到了更广泛的内容:

  

“提交内容时会触发此事件,而不是   价值在变化。例如,在文本框中,不会触发此事件   当用户正在键入时,而是在用户提交更改时   通过离开具有焦点的文本框。   此外,当控件也在onblur指定的代码之前执行此事件   失去了焦点。“

最后,在MDN

  

取决于要更改的表单元素的类型和方式   用户与元素交互,更改事件在a处触发   不同时刻:

     
      
  • 激活元素(通过点击或使用键盘)<input type="radio"><input type="checkbox">;
  •   
  • 当用户明确提交更改时(例如,通过鼠标单击从<select>的下拉列表中选择一个值,通过从<input type="date">的日期选择器中选择日期,通过选择文件   在<input type="file">等文件选择器中;
  •   
  • 如果元素在其值更改后失去焦点但未提交(例如,在编辑<textarea><input type="text">的值之后)。
  •   

另一个可能有用的链接 - WhatWg - specification - change event.