【问题标题】:How to check if enterkey is pressed in a TextBox in asp.net如何检查是否在asp.net的TextBox中按下了Enter键
【发布时间】:2011-10-20 11:46:12
【问题描述】:

我有一个 asp.net 文本框,它接受格式为 MM/DD/YYYY 的日期。输入日期后我会按回车键。如果回车键我需要执行服务器端代码。我们怎样才能做到这一点?

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

【问题讨论】:

    标签: c# javascript jquery asp.net


    【解决方案1】:

    您可以使用Panel.DefaultButton 属性在用户按下 Enter 键时自动单击按钮。

    例如:

    <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"

    【讨论】:

    • 这是 IMO 的最佳解决方案。不需要您编写脚本,并且不会在每次按键后回发。
    【解决方案2】:

    你设置了jquery标签

    所以使用 jquery 你可以尝试这样的事情

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

    【讨论】:

      【解决方案3】:

      使用keydown事件:

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

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


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

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

      【讨论】:

        【解决方案4】:

        你可以调用这个Javascript函数来检查是否按下了回车键。

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

        【讨论】:

          猜你喜欢
          • 2015-12-12
          • 1970-01-01
          • 2020-01-21
          • 2022-01-01
          • 2013-05-24
          • 1970-01-01
          • 1970-01-01
          • 2023-03-03
          • 2020-11-05
          相关资源
          最近更新 更多