javascript - 在JavaScript中,为什么blur方法会触发blur事件,而submit方法不会触发submit事件?

标签 javascript dom

我正在考虑通过调用元素的 blur 方法来强制运行 onblur 处理程序。但后来,我认为这行不通,因为我记得在 FormElement 上调用提交不会导致其 onsubmit 方法运行。

经过一些实验,我发现调用 blur 确实会导致调用元素的 onblur 处理程序。这看起来很不一致,并不是让我感到惊讶(毕竟这是 JS)。不过,如果有充分的理由,我想知道。在模糊但不提交的情况下调用处理程序是否有充分的理由?

最佳答案

我同意这看起来不一致。我的看法是 OnSubmit 行为有很多遗留包袱,因为它的大部分功能都是为了让人们可以在表单元素内部进行编码而设计的。为此,onsubmit 用于验证输入而无需破解源代码编辑器或 javascript 文件。我的猜测是,当他们编写此行为(很久以前)时,这似乎是明智的,因为一旦您使用 javascript,程序员就可以轻松地自己验证输入,因此不需要自动检查。对我来说似乎是一个疏忽。

下面这个关于 quirksmode 的网站专门警告了这一点,所以显然很多人对此感到困惑。

http://www.quirksmode.org/js/forms.html

关于javascript - 在JavaScript中,为什么blur方法会触发blur事件,而submit方法不会触发submit事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374633/

相关文章:

javascript - 单击页面加载后添加的 span 元素

javascript - 如何使用 JavaScript 创建文档对象

javascript - mediaelement.js 自动播放在移动设备上不起作用

javascript - 从子组件更新父组件状态

javascript - AJAX/JQuery - 在新表行上打印每个嵌套子项

javascript - 如何在 JS dom(无 jQuery)中使用 forEach 选择所有按钮

javascript - 为什么 jQuery 在循环时返回 span 元素内容的每个字符?

javascript - KnockoutJS Observable 未在模板中更新

PHP 返回带有名称而不是 ID 的元素

python - 如何让 Django 生成或更改 DOM 元素?