【问题标题】:Javascript capture keyJavascript 捕获密钥
【发布时间】:2009-04-16 15:53:31
【问题描述】:

我正在尝试使用 javascript 从文本区域捕获输入键。问题是,虽然我能够发现按下了“enter”键,但我无法避免它进入 textarea。我不希望在文本区域中显示回车键,即“\n”。

关于如何实现这一点有什么建议吗?

谢谢。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    尝试将此函数设置为文本区域的 onKeyDown 事件:

    例如:onkeydown="javascript:return fnIgnoreEnter(event);"

    function fnIgnoreEnter(thisEvent) {
      if (thisEvent.keyCode == 13) { // enter key
        return false; // do nothing
      }
    }
    

    【讨论】:

      【解决方案2】:

      更新更简洁:使用event.key 而不是event.keyCode没有更多的任意数字代码!

      function onEvent(event) {
          if (event.key === "Enter") {
              return false;
          }
      };
      

      Mozilla Docs

      Supported Browsers

      【讨论】:

      • .keyCode 已弃用。 eventkey 不是
      • 真的那么为什么会有这种关于全球事件被弃用的大惊小怪??
      • stackoverflow.com/questions/58341832/… 看起来有人需要更新他们的知识... :)
      【解决方案3】:

      即使您阻止了输入按钮,他们仍然可以粘贴换行符。 这将阻止输入按钮,并删除无论如何进入的任何换行符和回车符(仅在 FF 上尝试过,并且对此进行了最少的考虑 - 它可能无法在 Safari 或 IE 上按原样工作)。

      <textarea rows="20" cols="50" onkeydown="return ignoreEnter(event);" onkeyup="noEnter(this);"></textarea>
      <script type="text/javascript">
      function ignoreEnter( event ) {
       return thisEvent.keyCode != 13; // enter key
      }
      
      function noEnter( e ) {
       e.value = e.value.replace(/\n/g,'');
       e.value = e.value.replace(/\r/g,'');
      }
      </script>
      

      【讨论】:

        猜你喜欢
        • 2011-05-22
        • 2023-04-04
        • 2014-02-15
        • 2017-12-23
        • 1970-01-01
        • 2010-10-05
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多