【问题标题】:jQuery capture enter key and prevent defaultjQuery捕获输入键并防止默认
【发布时间】:2013-01-03 14:55:36
【问题描述】:

参考这里的答案: How to use TinyMCE functions on text without actually selecting that text?

我已经意识到了

$('#TAID_ifr').contents().find('html').bind('keypress', function(e){return false;});

对回车键不起作用。当用户点击“回车”时,就会形成一个换行符。但对于所有其他键,代码按预期工作,即没有任何反应。进入需要特殊处理吗?我添加了下面的代码,但没有任何区别:

            var code = e.keyCode || e.which;
                if (code == 13) e.preventDefault();

怎么了?我不想在用户点击“enter”时插入新行,我不想发生任何事情。

编辑

这不是因为enter 键是在 iframe 中按下的吗?

【问题讨论】:

  • 你用的是什么版本的jquery?
  • 顺便问一下$('#TAID_ifr')textarea还是iframe
  • 这是一个 iframe。这就是 TinyMCE 的工作方式——我们最终编辑了一个 iframe,它为我们打扮得像一个 textarea。我正在使用 jQuery 1.8
  • var code = e.keyCode || e.which; 您是否尝试过仅使用其中之一,例如var code = e.which;
  • @Thariama 你知道这是否可能吗?

标签: jquery tinymce keypress enter preventdefault


【解决方案1】:

请试试这个代码:

$('#TAID_ifr').keypress(function(event){

    if (event.keyCode == 10 || event.keyCode == 13)  {
        event.preventDefault();
    }
});

【讨论】:

  • 嗨@user961627,如果这有帮助,请告诉我。
【解决方案2】:

是的,这是可能的。 Tinymce 使用自己的事件管理。 有一个名为onKeyDowntinymce event。使用setup configuration parameter,您可以使用此事件:

// Adds an observer to the onKeyDown event using tinyMCE.init
tinyMCE.init({
   ...
   setup : function(ed) {
      ed.onKeyDown.add(function(ed, event) {

          if (event.keyCode == 13)  {
              event.preventDefault();
              event.stopPropagation();
              return false;
          }
      });
   }
});

请注意,由于不同浏览器中的实现不同,此处使用了几个语句来阻止代码的传播。

【讨论】:

  • 你又拯救了一天! :) 这两天我一直在这,谢谢!
  • 很高兴能够提供帮助
【解决方案3】:

在 TinyMce 4.x 中,使用以下 sn-p,如 here 所述:

// Adds an observer to the onKeyDown event using tinyMCE.init
tinymce.init({
   ...
   setup : function(ed) {
      ed.on('KeyDown', function(event) {
          if (event.keyCode == 13)  {
              event.preventDefault();
              event.stopPropagation();
              return false;
          }
      });
   }
});

【讨论】:

    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    相关资源
    最近更新 更多