我正在考虑通过调用元素的 blur 方法来强制运行 onblur 处理程序。但后来,我认为这行不通,因为我记得在 FormElement 上调用提交不会导致其 onsubmit 方法运行。
经过一些实验,我发现调用 blur 确实会导致调用元素的 onblur 处理程序。这看起来很不一致,并不是让我感到惊讶(毕竟这是 JS)。不过,如果有充分的理由,我想知道。在模糊但不提交的情况下调用处理程序是否有充分的理由?
最佳答案
我同意这看起来不一致。我的看法是 OnSubmit 行为有很多遗留包袱,因为它的大部分功能都是为了让人们可以在表单元素内部进行编码而设计的。为此,onsubmit 用于验证输入而无需破解源代码编辑器或 javascript 文件。我的猜测是,当他们编写此行为(很久以前)时,这似乎是明智的,因为一旦您使用 javascript,程序员就可以轻松地自己验证输入,因此不需要自动检查。对我来说似乎是一个疏忽。
下面这个关于 quirksmode 的网站专门警告了这一点,所以显然很多人对此感到困惑。
关于javascript - 在JavaScript中,为什么blur方法会触发blur事件,而submit方法不会触发submit事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374633/