停止按键事件

时间:2009-09-10 10:54:00

标签: javascript-events keypress

如何在keydown中停止按键事件。

我有一个keydown处理程序,我需要停止按键事件。

实际上我有一个表格和文本框。

当用户按下“enter”键时,keydown会触发事件并拥有处理程序。

表单提交将在按键中触发,所以我需要在我的keydown处理程序中停止按键事件。

7 个答案:

答案 0 :(得分:43)

function onKeyDown(event) {   
  event.preventDefault();
}

http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event-preventDefault

function onsubmit(event) {
  return false;
}

返回false以停止事件传播

答案 1 :(得分:3)

在opera中,您必须使用keypress事件来阻止键盘事件的默认操作。 keydown可以防止所有浏览器中的默认操作,但不能用于Opera。

在浏览器的键盘处理中查看this long list of inconsistencies

答案 2 :(得分:1)

在事件处理程序中尝试event.cancelBubble = true

答案 3 :(得分:1)

这里我停止了up / dn / left / right键冒泡的事件:

    $(document).on("keydown", function(e) {
        if(e.keyCode >= 37 && e.keyCode <= 40) {
            e.stopImmediatePropagation();
            return;
        }
    });

我还从上面的答案中尝试了 e.preventDefault event.cancelBubble = true ,但它们没有任何影响。

答案 4 :(得分:0)

写入,

    <script type="text/javascript">
      function keyDn(obj)
      {
        if(window["event"]["keyCode"]==48)  // key 0 will disabled keyPress event
         {
           obj["onkeypress"]=null;
          }
       }
      function keyPs(obj)
      {
        alert("Keypress");
      }

    </script>

  <form id="form1" runat="server">
    <div>
     <input type="text" onkeydown="keyDn(this)" onkeypress="keyPs(this)" />
    </div>
  </form>

在keydown处理程序中。

答案 5 :(得分:0)

我能够获得event.preventDefault();在Safari和Firefox中工作,但不适用于IE7或IE8。

如果您只想禁用回车键,请确保您还要检查键值(输入为13)并仅为该键设置event.preventDefault()。

任何人都可以为IE7 / 8或Opera找到答案吗?

答案 6 :(得分:0)

appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:623:
MatplotlibDeprecationWarning: The MATPLOTLIBDATA environment variable
was deprecated in Matplotlib 3.1 and will be removed in 3.3.  
exec(bytecode, module.__dict__)