当用户在网页上按回车键时如何执行事件
本文关键字:何执行 执行 事件 用户 网页 回车 | 更新日期: 2023-09-27 18:34:26
我有一个 ASP.NET 网站,我有一个忘记密码页面,用户在其中输入他们的电子邮件地址在文本框中,当他们单击按钮检索密码时,事件运行正常。
唯一的问题是,如果用户输入他们的电子邮件地址并按 Enter 键,它会运行搜索(我在页面顶部有一个搜索栏),因此结果返回为"找不到搜索查询"。但是顶部的这个搜索栏位于不同的 ASP.NET 页面上。
所以无论如何,我希望事件onclick
在用户按 Enter 时运行,而不是运行搜索查询。有人有什么想法吗?我已经在这个网站上搜索过,但没有真正找到我需要的答案。
有几种方法可以做到这一点。如果它是一个网络表单,并且您的文本框用asp:panel包装,则可以执行以下操作:
<asp:Panel ID="p" runat="server" DefaultButton="myButton">
<%-- Text boxes here --%>
<asp:Button ID="myButton" runat="server" />
</asp:Panel>
如果它不是网络表单,或者您想离开该表单,请尝试以下操作:
<asp:TextBox ID="TextBox1" runat="server" onkeypress="return EnterEvent(event)"></asp:TextBox>
<asp:Button ID="Button1" runat="server" style="display:none" Text="Button" />
function EnterEvent(e) {
if (e.keyCode == 13) {
__doPostBack('<%=Button1.UniqueId%>', "");
}
}
在代码隐藏触发中,您的按钮根据回发的参数在页面加载中单击。
将"defaultbutton"属性指定为 (要触发的事件)的 ID。
您可以在表单级别(在表单标记中)指定"默认按钮"属性
或者,您可以在标签的面板级别定义它们。
在面板级别设置中覆盖表单级别设置。触发指定按钮的事件处理程序,模拟真正的提交按钮功能。
<form id="sampleform" runat="server" defaultbutton="button1">
<div>
<asp:TextBox ID="textBox1" runat="server"></asp:TextBox>
<asp:Button ID="button2" runat="server" Text="Cancel" OnClick="Button2_Click" />
<asp:Button ID="button1" runat="server" Text="Ok" OnClick="button1_Click" />
<asp:Panel ID="panel1" runat="server" defaultbutton="Button5">
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
<asp:Button ID="Button5" runat="server" Text="Button5" OnClick="Button5_Click" />
</asp:Panel>
</div>
</form>
在此示例中,Button1 是窗体的默认按钮(在文本框 1 中键入内容并按回车键,button1_Click触发)。但是对于"面板 1",默认按钮将是按钮 5(输入文本框 3 或文本框 5 并按回车键)。您可以拥有任意数量的面板,每个面板具有不同的默认按钮。
在文本框和按钮周围添加一个 ASP 面板,其中按钮名称的 id 作为 DefaultButton 的属性是执行此操作的最佳方法。
<asp:Panel ID="p" runat="server" DefaultButton="myButton">
<%-- Text boxes here --%>
<asp:Button ID="myButton" runat="server" />
</asp:Panel>