为什么没有页面停止按键?

时间:2010-11-25 10:24:56

标签: javascript html

我已将以下代码放在页面顶部的头部:

<script type="text/javascript">

      function stopRKey(evt) {

          console.log(evt.keyCode);

          var evt = (evt) ? evt : ((event) ? event : null);

          var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

          console.log(evt.keyCode);

          if ((evt.keyCode == 13) && (node.type == "text")) {
              return false;
          }
      }

      document.onkeypress = stopRKey;

    </script>

在我的一个页面上,当我按下回车时它没有触发事件。但是我的页面中只有一个看似有效,并记录了13的键码,从而停止了回发。

为什么这个事件不会在这个特定页面上触发的任何想法?

干杯, 皮特

2 个答案:

答案 0 :(得分:0)

可能在您的断页上有表单元素触发不是文本节点的回发。尝试删除阻止提交的条件的第二部分,看看会发生什么:

if (evt.keyCode == 13) {
    return false;
}

答案 1 :(得分:0)

您当然可以简化代码。对于<input type="text">元素,没有理由不这样做:

function stopRKey(evt) {
    evt = evt || window.event;
    var node = evt.target || evt.srcElement;
    console.log(evt.keyCode);

    if (evt.keyCode == 13 && node.nodeName == "INPUT" && node.type == "text") {
        return false;
    }
}