1

以下のように、テキスト ボックス コントロールを使用して Web ページを作成しました。

<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キーを押すと、ページがポストバックされ、テキストボックスのサーバー側が起動するように助けてください。

コードをデバッグしたところ、ENTER キーを押すと WebForm_TextBoxKeyHandler が 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 に答える