[英]Setting focus to a button from text box?
我的表單上有一些文本框和按鈕。
假設txtBox1在btnSubmit1旁邊,txtBox2在btnSubmit2旁邊,txtBox3在btnSubmit3旁邊。
當用戶開始在txtBox3中鍵入內容時,如何設置btnSubmit3的焦點。 含義.....如果用戶在文本框中鍵入內容,則程序將在用戶按下Enter鍵時知道要觸發哪個按鈕。
如果使用面板,則應該能夠設置默認按鈕。 我不確定這是Win Form應用程序還是Web Form應用程序,但這是您應該如何使用Web Forms的方法:
<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>
使用JavaScript並為這些TextBox添加一個“ onblur” ...
例:
<asp:TextBox ID="t1" runat="server" onblur="CheckIfTextBox1ShouldFocusOnButton1();" />
:)
我已經看到它是這樣做的,但不要讓我解釋它,也不要說它相對於其他方法的優缺點。 只是認為我會發布它,以防它對您有用。
// 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));
如果您知道唯一使用的瀏覽器是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中使用,是因為它使用了Javascript“ event”關鍵字,而該關鍵字在Firefox中不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.