这是我拥有的文本框字段,当用户输入值并按Enter键时,我希望在用户按Enter键时提交该值。
<div id="divUserInfo" >
<table align="center">
<tr id="trDomain" runat="server" visible="false">
<td class="tdLabel tdLabelInfo" >Domain Name</td>
<td class="tdData">
<asp:TextBox ID="txtDomain" runat="server" ToolTip="Network domain user is associated."></asp:TextBox>
<asp:Label ID="lblRqdDom" runat="server" Text="required" CssClass="noshow" ></asp:Label>
</td>
</tr>
是的我知道我在表格中格式化,并且不会在未来的项目中使用表格。
答案 0 :(得分:6)
TextBox失去焦点的回发
如果您只想在TextBox
失去焦点时(通过按Enter
,Tab
或将焦点移至另一个控件)进行回发,请设置AutoPostBack
属性TextBox
到 true 。
在TextBox
中写一些东西并使其失去焦点后,你会得到一个回发。但是,我想,按Enter键可以提高不仅。
有关MSDN的更多信息:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.autopostback.aspx。
通过模拟提交回发按钮点击按Enter
如果您只想按回车键进行回发,可以在页面上添加Button
,并将TextBox
放在同一个Panel
控件中。然后,您应为此DefaultButton
设置Panel
属性。当TextBox
(或Panel
中的任何其他控件)聚焦时,这应该在按 Enter 时调用按钮单击。
因此,您的代码可能如下所示(代码尚未经过测试):
...
<asp:Panel ID="grouppingPanel" runat="server" DefaultButton="btnSubmitDomain">
<asp:TextBox ID="txtDomain" runat="server" ToolTip="Network domain user is associated." />
<asp:Label ID="lblRqdDom" runat="server" Text="required" CssClass="noshow" ></asp:Label>
<asp:Button ID="btnSubmitDomain" runat="server" Text="GO" OnClick="btnSubmitDomain_Click" />
</asp:Panel>
...
您可以在此处找到有关它的更多信息:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx。
如果您在应用任何这些解决方案或其他问题时遇到任何问题,请与我们联系。
答案 1 :(得分:1)
您需要自定义客户端事件才能响应Enter
按键以编程方式提交表单,或者您需要input
类型submit
。如果表单上有提交按钮,则在文本框中按Enter
以提交表单是默认行为。如果您选择实现自定义事件处理程序,则需要在按下Enter
键时将其附加到应提交表单的每个文本框中。
注意:如果表单上有多个submit
按钮,则默认行为是调用第一个按钮,因为它们出现在DOM中。如果您不想先显示官方submit
按钮,可以使用一些CSS重新排列显示,也可以在表单顶部放置一个隐藏按钮作为“默认操作”。 / p>
答案 2 :(得分:1)
首先,在page_load事件中注册此javascript:
Public Shared Sub jsTrapEnter(ByRef p_Page As System.Web.UI.Page)
Dim sScript As New System.Text.StringBuilder
sScript.Append("<SCRIPT language=""javascript"">" & vbCrLf)
sScript.Append("function fnTrapKD(btn){" & vbCrLf)
sScript.Append(" if (document.all){" & vbCrLf)
sScript.Append(" if (event.keyCode == 13)" & vbCrLf)
sScript.Append(" { " & vbCrLf)
sScript.Append(" event.returnValue=false;" & vbCrLf)
sScript.Append(" event.cancel = true;" & vbCrLf)
sScript.Append(" btn.click();" & vbCrLf)
sScript.Append(" } " & vbCrLf)
sScript.Append(" } " & vbCrLf)
sScript.Append("}" & vbCrLf)
sScript.Append("</SCRIPT>" & vbCrLf)
If Not p_Page.ClientScript.IsClientScriptBlockRegistered("ForceDefaultToScript") Then
p_Page.ClientScript.RegisterClientScriptBlock(p_Page.GetType, "ForceDefaultToScript", sScript.ToString)
End If
End Sub
然后,此方法为每个要使用默认按钮的编辑器控件添加一个属性:
Public Shared Sub DefaultButton(ByVal objTextControl As Web.UI.WebControls.WebControl, ByVal objDefaultButtonID As String)
objTextControl.Attributes.Add("onkeydown", String.Format("fnTrapKD(document.all.{0})", objDefaultButtonID))
End Sub
然后在我们的page_load事件中注册每个编辑器的默认按钮:
DefaultButton(txtStreetNm, btnSearch.ClientID)
DefaultButton(txtSuffix, btnSearch.ClientID)