2008-11-13 107 views
1

我的窗體上有幾個文本框和按鈕。將焦點從文本框中設置爲一個按鈕?

比方說txtBox1毗鄰btnSubmit1, txtBox2毗鄰btnSubmit2, txtBox3毗鄰btnSubmit3。

當用戶開始在txtBox3中鍵入內容時,如何將焦點設置爲btnSubmit3。 含義.....如果用戶在文本框中鍵入,程序將知道當用戶按下回車鍵時要觸發哪個按鈕。

+0

我正在使用ASP.NET 2.0和VB.net代碼 – Etienne 2008-11-13 09:56:33

+0

開始輸入時無法設置焦點 - 否則您將無法繼續輸入。您需要更改頁面的默認按鈕。 – DilbertDave 2008-11-13 09:58:28

+0

當然,這是有道理的.....但是當我的所有3個文本框和按鈕都在1頁上時,我怎麼做呢?我需要知道什麼文本框來設置焦點取決於用戶在當前頁面上的位置。 – Etienne 2008-11-13 10:06:22

回答

6

如果您使用面板,您應該可以設置默認按鈕。我不確定是否it's一個雙贏的形式應用程序或Web窗體應用程序,但是這是你應該如何與Web窗體做到這一點:

<asp:Panel id="panel1" runat="server" DefaultButton="Button1"> 
    <asp:TextBox id="textbox1" runat="server" /> 
    <asp:Button id="Button1" runat="server" Text="Button 1" /> 
</asp:Panel> 

<asp:Panel id="panel2" runat="server" DefaultButton="Button2"> 
    <asp:TextBox id="textbox2" runat="server" /> 
    <asp:Button id="Button2" runat="server" Text="Button 2" /> 
</asp:Panel> 

<asp:Panel id="panel3" runat="server" DefaultButton="Button3"> 
    <asp:TextBox id="textbox3" runat="server" /> 
    <asp:Button id="Button3" runat="server" Text="Button 3" /> 
</asp:Panel> 
+0

好東西!謝謝!! – Etienne 2009-02-24 10:45:53

0

使用JavaScript,並添加一個「的onblur」這些文本框。 ..

例子:

<asp:TextBox ID="t1" runat="server" onblur="CheckIfTextBox1ShouldFocusOnButton1();" /> 

:)

0

我已經看到了它就像這樣,但不要問我解釋,或說什麼利弊超過其他任何方法。只是想我會發布它,以防它對你有用。

// Fires a particular event when enter is pressed within a textbox. 
function FireButtonOnEnter(controlID) 
{ 
    if((event.which ? event.which : event.keyCode) == 13) 
    { 
     window.event.returnValue = false; 
     window.event.cancelBubble = true; 
     document.getElementById(controlID).click(); 
    } 
} 

把它通過添加文本框下面...

txtOrgName.Attributes.Add("OnKeyDown", String.Format("return FireButtonOnEnter('{0}');", btnOrgNameGo.ID)); 
0

這是一個簡單的解決方案,如果你知道正在使用的唯一的瀏覽器是IE。

你只需要添加到頁面加載

txtBox1.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) 
__doPostBack('" + btnSubmit1.UniqueID + "','')"); 

txtBox2.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) 
__doPostBack('" + btnSubmit2.UniqueID + "','')"); 

txtBox3.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) 
__doPostBack('" + btnSubmit3.UniqueID + "','')"); 

的原因,在IE瀏覽器這隻能是,它使用的是不工作在Firefox JavaScript的「事件」關鍵詞。

相關問題