【问题标题】:How to disable Enter/Return Key After a function is executed because of it?函数执行后如何禁用 Enter/Return 键?
【发布时间】:2011-09-15 08:52:34
【问题描述】:

我有这个函数,其中#text_comment 是文本区域的 ID:

$('#text_comment').live('keypress',function (e) {

    if(e.keyCode == 13) {
        textbox = $(this);
        text_value = $(textbox).val();

        if(text_value.length > 0) {
            $(this).prev().append('<div id="user_commenst">'+text_value+'</div>');
            $(textbox).val("");
        } 
    }                                               
});

当按下回车键(keyCode 13)时,文本正在追加,但它也将文本向下移动一行,正如回车键应该做的那样。

即使我将文本框的值设置为“”,也​​会发生这种情况。

【问题讨论】:

    标签: javascript jquery keyboard keycode


    【解决方案1】:

    【讨论】:

    • 你如何防止默认输入键?
    • 是否将其绑定到 if 语句的事件 insde?​​span>
    【解决方案2】:

    在输入if(e.keyCode == 13) 案例时,尝试停止事件传播(请参阅http://snipplr.com/view/19684/stop-event-propagations/)。

    【讨论】:

      【解决方案3】:

      试试这个event.stopImmediatePropagation()

      $('#text_comment').live('keypress',function (e) {       
                if(e.keyCode == 13) {   
                     e.stopImmediatePropagation()
             ///rest of your code
        }
      });
      

      【讨论】:

      • 是的,这很好用。对不起,是另一个功能搞砸了
      【解决方案4】:

      我已经测试过了,这行得通。回车不会创建新行。

      $('#text_comment').live('keypress',function (e) {
      
          if(e.keyCode == 13) {
              textbox = $(this);
              text_value = $(textbox).val();
      
              if(text_value.length > 0) {
                  $(this).prev().append('<div id="user_commenst">'+text_value+'</div>');
                  $(textbox).val("");
              }
              return false;
          }                                               
      });
      

      虽然我想知道,如果您不想换行,为什么要使用 textarea,为什么不使用 input type='text' 代替?

      【讨论】:

        【解决方案5】:

        【讨论】:

        • @TaylorMac- 我认为ugeneK 在 40 分钟前给出了相同的答案,那么您还在等什么?工作示例:D
        • 大声笑,我想我知道为什么,可能是因为他想在相信之前先看看实际的实现。看到就是相信他们怎么说。对于所有回答正确的人,我也会为 eugeneK +1。谁先回答并不重要,最重要的是我们尽力提供最好的帮助。 :)
        • 为 TaylorMac +1 造成了这个麻烦哈哈哈
        • @Ian Jasper Bardoquillo -+1 为您解释,为什么 TaylorMac 这样做.. he he he
        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
        猜你喜欢
        • 2021-11-12
        • 2010-12-10
        • 2011-07-22
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        相关资源
        最近更新 更多