簡體   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