限制按Enter键

时间:2012-11-26 07:14:51

标签: javascript jquery asp.net

  

可能重复:
  Prevent form submission with enter key

在我的项目中,我试图禁用 Enter 键并给出我自己的回车键功能。(我没做过

以下功能正在运行,但只要我在TextBox字段内按 Enter 键,内容就会添加到div(根据需要)以及{{ 1}}字段,输入键功能正在发生(我不想要)。如何停止在TextBox字段上运行的输入键功能?为了清楚理解,请参阅以下代码中的我的评论。

.aspx文件工作

TextBox

jQuery 工作

<asp:TextBox ID="msg" BackColor="Transparent" runat="server" BorderStyle="None"
                        TextMode="MultiLine" />

source

2 个答案:

答案 0 :(得分:4)

尝试e.preventDefault() 像这样

$('#msg').keypress(function (e) {
            if (e.which == 13) {
                e.preventDefault();
                //Shows the TextBox text in a Div, which I want to.
                chat.server.send($('#msg').val());  //also going one step down in TextBox field which I dont want to.

                $('#msg').val(''); //Clearing the Text in TextBox field

                //what should I add here to make the Enter Key work only for the DIV?
            }
        });

答案 1 :(得分:0)

也尝试使用C#在C#中进行验证。只需编写以下函数并调用函数提供参数(如下所述)

public void disable_TextBox_Enter(Control parent)
    {
        foreach (Control c in parent.Controls)
        {
            if ((c.Controls.Count > 0))
            {
                disable_TextBox_Enter(c);
            }
            else
            {
                if (c is TextBox)
                {
                    ((TextBox)(c)).Attributes.Add("onkeydown", "return (event.keyCode!=13);");

                }
                if (c is GridView)
                {

                    ((GridView)(c)).Attributes.Add("onkeydown", "return (event.keyCode!=13);");

                }

            }
        }
    }

你可以调用这样的函数:

disable_TextBox_Enter(this);