如何检查是否在asp.net的TextBox中按下了enterkey

时间:2011-10-20 11:46:13

标签: c# javascript jquery asp.net

我有一个asp.net文本框,它接受MM / DD / YYYY格式的日期。输入日期后,我将按Enter键。如果输入密钥,我需要执行服务器端代码。如何实现这一目标?

文本框的问题是,只有在失去焦点时才会触发Text Changed事件。

4 个答案:

答案 0 :(得分:2)

你设置了jquery标签

所以使用jquery你可以试试这样的东西

$("#field").keydown(function(e){
     if(e.keyCode === 13)
     {
          // enter event
     }
});

答案 1 :(得分:2)

当用户按Enter键时,您可以使用Panel.DefaultButton属性自动点击按钮。

例如:

<asp:Panel Id="panel1" runat="server" DefaultButton="btnSubmit">
  <asp:TextBox Id="txtDate" runat="server" />
  <asp:Button Id="btnSubmit" Text="Submit" OnClick="btnSubmit_Click" runat="server" />
</asp:Panel>

如果您不想显示该按钮,可以设置其style="display: none"

答案 2 :(得分:1)

使用keydown事件:

textBox.Attributes.Add("onKeyDown", "KeyDownHandler()");

KeyDownHandler()检查按下的键,如果正确,请提交周围的表单或调用AJAX请求。请参阅Javascript Char Codes上的键盘代码。


或者,可以将文本框ID从.aspx注入到jQuery中,并分配一个直接的keydown处理程序:

$('#<%=textBox.clientID%>').keydown(function (e) { /* Do server request; */ });

答案 3 :(得分:0)

您可以调用此Javascript函数来检查是否已按下回车键。

function checkEnterKeyPress(e)
{
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     

     if (key == 13){
         alert(key);
     }
}