我有一个包含 "email" 等常用字段的表单。我有 JavaScript 捕获回车键(13)并提交表单,但是在使用主面板上的 defaultButton 属性时也观察到了相同的效果。
如果用户正在输入电子邮件地址,并从浏览器的内联自动完成中选择一个项目来按 ENTER,则不会将任何按键发送给 JavaScript(IE 上)。
然而,在 Firefox 中,文本框接收 ENTER 键按下事件并想要提交表单,这是不完整的。
除了禁用自动完成之外,有没有人知道如何停止这个问题? 我无法找到一种方法来检测按键实际上是来自自动完成列表框。
我正在使用 asp.net 和 jQuery。
编辑 - 澄清一下: 在自动完成列表中按 Enter 不应提交表单。IE 的行为是正确的(这次!)。
我的事件处理程序本身很简单:
on key up (也尝试过 keypress) - if(e.which == 13) submitForm();
问题是,我不知道如何检测该 ENTER 按键实际上来自自动完成控件。