Javascript 我在文本输入上有一个更改事件,在按钮上有一个单击事件。为什么前者先开火?

Javascript 我在文本输入上有一个更改事件,在按钮上有一个单击事件。为什么前者先开火?,javascript,forms,events,Javascript,Forms,Events,我正在开发一个JavaScript“表单”(它实际上不是表单——它是一个向另一个JavaScript对象发出请求的淘汰接口,但这并不重要),我有点担心一些行为,我不确定自己是否可以依赖 假设我有一个输入,并且通过onChange或jquerychange附加了一个变更事件。该更改事件将更新一个模型,我将验证该模型,然后将其作为表单“提交”的一部分发送到服务器 我还有一个按钮,带有执行提交的单击事件 如果我单击按钮,据我所知,表单元素更改事件首先触发。但我能依靠这种行为吗?变更事件触发的是公认规范

我正在开发一个JavaScript“表单”(它实际上不是表单——它是一个向另一个JavaScript对象发出请求的淘汰接口,但这并不重要),我有点担心一些行为,我不确定自己是否可以依赖

假设我有一个输入,并且通过onChange或jquerychange附加了一个变更事件。该更改事件将更新一个模型,我将验证该模型,然后将其作为表单“提交”的一部分发送到服务器

我还有一个按钮,带有执行提交的单击事件

如果我单击按钮,据我所知,表单元素更改事件首先触发。但我能依靠这种行为吗?变更事件触发的是公认规范的第一部分,还是仅仅是浏览器实现细节

我查看了事件规范(),但没有找到具体问题的答案,只是单击、模糊和聚焦事件是同步处理的——也就是说,它们被添加到队列中并按顺序执行。但我不知道用户代理之间的顺序是否一致


任何规范都能保证这种行为吗?

form.submit()
'ed时,没有任何输入的空表单是否仍会触发更改事件?我认为这是输入字段中的冒泡事件。