【发布时间】:2011-02-17 03:38:15
【问题描述】:
我想保留传统的“按 Enter 时提交表单”行为,因为用户很熟悉。但是通过反射,当他们完成一个文本输入框时,他们经常按回车 - 但在他们真正完成完整表单之前。
我只想在焦点集中在某类输入时才劫持 Enter 键。
寻找Related Questions 这看起来像我要找的东西:
if (document.addEventListener) {
document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false);
} else {
document.getElementById('strip').onkeypress = HandleKeyPress;
}
但if (document.addEventListener) { 部分我不熟悉。
【问题讨论】:
-
这就是所谓的特征检测。如果浏览器使用
addEventListener()语法来添加事件监听器,那么在每个DOM 节点对象(特别是在文档对象中)都会有一个名为addEventListener的函数对象。函数对象在转换为布尔值时变为真,因此第一个分支运行。如果浏览器不理解 addEventListener 语法,document.addEventListener将未定义(转换为 false)并执行第二个分支中的回退代码。 -
非常感谢解释。谢谢!