如何在函数执行后禁用 Enter/Return 键?

发布于 2024-11-15 21:33:52 字数 565 浏览 2 评论 0原文

我有这个函数,其中 #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("");
        } 
    }                                               
});

发生的情况是,当按下 Enter/Return 键(keyCode 13)时,文本会被附加,但它也会将文本向下移动一行,因为 Enter/返回键应该是。

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

I have this function where #text_comment is the ID of a textarea:

$('#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("");
        } 
    }                                               
});

What is happening is the text is appending when the enter/return key is hit (keyCode 13), but it is also moving the text a line down, as the enter/return key is supposed to.

This is occurring even though I set the value of the textbox to "".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

放手` 2024-11-22 21:33:52

尝试停止事件传播(请参阅 http://snipplr.com/view/19684/ stop-event-propagations/) 当进入 if(e.keyCode == 13) 情况时。

Try and stop your event propagation (See http://snipplr.com/view/19684/stop-event-propagations/) when entering the if(e.keyCode == 13) case.

月下客 2024-11-22 21:33:52

试试这个event.stopImmediatePropagation()

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

try this one event.stopImmediatePropagation()

$('#text_comment').live('keypress',function (e) {       
          if(e.keyCode == 13) {   
               e.stopImmediatePropagation()
       ///rest of your code
  }
});
风透绣罗衣 2024-11-22 21:33:52

我已经测试过这个,有效。输入不会创建新行。

$('#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;
    }                                               
});

虽然我想知道,如果您不想换行,为什么要使用文本区域,为什么不使用输入类型='文本'呢?

I've tested this out, this works. The enter does not create a new line.

$('#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;
    }                                               
});

Although I am wondering, if you don't want to ever have a new line, why are you using a textarea, why not use a input type='text' instead ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文