我的表单上有几个文本框和按钮。
让我们说txtBox1在btnSubmit1旁边, txtBox2在btnSubmit2旁边, txtBox3位于btnSubmit3旁边。
当用户开始在txtBox3中键入内容时,如何将焦点设置为btnSubmit3。 含义.....如果用户在文本框中输入,当用户按下回车键时,程序将知道要触发的按钮。
答案 0 :(得分:6)
如果您使用面板,则应该能够设置默认按钮。我不确定它是win表单应用程序还是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>
答案 1 :(得分:0)
使用JavaScript并为那些TextBoxes添加“onblur”......
示例:
<asp:TextBox ID="t1" runat="server" onblur="CheckIfTextBox1ShouldFocusOnButton1();" />
:)
答案 2 :(得分: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));
答案 3 :(得分: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“事件”关键字。