TOP

[C#] 在TextBox按下鍵盤上Enter後自動執行某一個button click

在TextBox按下鍵盤上Enter後自動執行某一個button click

會發生這個狀況是因為程式會自動執行Postback,並且當頁面內有button物件時,就會執行button click。

參考資料:
http://www.cnblogs.com/jiajiayuan/archive/2011/08/26/2154596.html
http://wellylin.blogspot.tw/2012/02/aspnet-form-submit-keypress-by-enter.html

解決的方式,可以利用panel預設default button或是利用javascript阻擋。
(1)利用panel預設default button
     <asp:Panel ID="asp:Panel1" runat="server" DefaultButton="btDefaultButton">
            <asp:Button ID="btDefaultButton" runat="server" Text="_DefaultButton" style="display:none" />
        </asp:Panel>

參考資料:
http://eos45.pixnet.net/blog/post/48273310-asp.net-%E8%AE%93-enter-%E7%84%A1%E6%95%88

(2)利用javascript阻擋
txtTitle.Attributes.Add("onkeypress", "if( event.keyCode == 13 ) { return false; }");

參考資料:
http://demo.tc/Post/233

(3)利用javascript指定執行的button click
Me.txt_pass.Attributes.Add("onkeypress", "if( event.keyCode == 13 ) {"& Me.ClientScript.GetPostBackEventReference(Me.btn_pass, "")& "}")
參考資料:
http://blog.xuite.net/tolarku/blog/39441722-TextBox+%E8%BC%B8%E5%85%A5%E5%AE%8C%E6%8C%89%E4%B8%8B+Enter+%E8%A7%B8%E7%99%BC%E6%8C%89%E9%88%95%E4%BA%8B%E4%BB%B6


http://nelsonkai.blogspot.tw/2008/12/text-boxentersend.html

(4)利用javascript在 Enter 鍵被按下時,改成 Tab 鍵
參考資料:
http://charlesbc.blogspot.tw/2009/06/aspnet-enter-tab.html

(5)利用 form defaultbutton
<asp:Button ID="btDefaultButton" runat="server" Text="_DefaultButton" style="display:none" />

    this.Form.DefaultButton = btDefaultButton.UniqueID;
    btDefaultButton.Style.Add("display", "none");


0 意見:

張貼留言