繁体   English   中英

用户按下网页返回时如何执行事件

[英]How to execute event when user presses return on web page

我有一个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(您要触发的事件)。

您可以在表单级别(在表单标签中)指定“ defaultbutton”属性

否则,您可以在标签的面板级别定义它们。

表单级别设置在面板级别设置中被覆盖。 将触发指定按钮的事件处理程序,以模拟真正的提交按钮功能。

<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中键入内容,然后按Enter,将触发button1_Click)。 但是对于“面板1”,默认按钮将是按钮5(在Textbox3或Textbox 5中键入,然后按Enter键)。 您可以具有任意数量的面板,每个面板具有不同的默认按钮。

最好的方法是在文本框和按钮周围添加一个ASP面板,并以按钮名称的ID作为DefaultButton的属性。

    <asp:Panel ID="p" runat="server" DefaultButton="myButton">
  <%-- Text boxes here --%>
  <asp:Button ID="myButton" runat="server" />
</asp:Panel>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM