在输入键上按下文本框服务器端回发事件未被触发

时间:2012-10-03 12:39:04

标签: javascript asp.net .net

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

<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 Key Press上,页面应该回发,文本框服务器端会被点燃。

我调试了代码,发现当按下ENTER键时WebForm_TextBoxKeyHandler返回false。下面是呈现的代码 -

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试以下解决方法 -

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