【问题标题】:On Enter Key Press on textbox server-side postback event not getting firedOn Enter Key Press on textbox server-side postback event没有被触发
【发布时间】:2012-09-24 09:22:28
【问题描述】:

我创建了一个带有如下文本框控件的网页 -

<asp:TextBox ID="txtNumber" runat="server" size="5" MaxLength="9" AutoPostBack="True"
                    OnTextChanged="txtNumber_TextChanged" CssClass="txtBoxPage" Style="margin-left: 3px;"></asp:TextBox>

在文本框中按 Enter 键时遇到问题。在 Enter 键按下回发不会发生。您能否提供帮助,以便在 Enter Key Press 上,页面应该得到回发,并且文本框服务器端会被触发。

我调试了代码,发现当按下 ENTER 键时 WebForm_TextBoxKeyHandler 返回 false。下面是渲染代码供参考-

<input type="text"  onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;"  onchange="javascript:setTimeout('__doPostBack(\'textbox1\',\'\')', 0)"  ... />

提前致谢。

【问题讨论】:

    标签: javascript asp.net .net


    【解决方案1】:

    尝试以下解决方法 -

    //Page_Load method
    txtNumber.Attributes.Add("onkeyup", "OnKeyUp(event);");
    
    
    //JavaScript code
    function OnKeyUp(event) {
           var key = (event.keyCode) ? event.keyCode : event.which;
           if (key != null) {
                key = parseInt(key, 10);
                if (key == 13) {
                    document.body.setActive();
                    document.body.focus();
                    window.event.srcElement.focus();
                }
           }        
     } 
    

    上面的代码将触发 PostBack 事件,因为焦点正在丢失并从文本框中重新获得。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多