1

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

<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 上,页面应该得到回发,并且文本框服务器端会被触发。

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

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

提前致谢。

4

1 回答 1

3

尝试以下解决方法 -

//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 事件,因为焦点正在丢失并从文本框中重新获得。

于 2012-10-03T13:35:28.130 回答