ContentPage 上有一个文本框。当用户在该文本框中按 Enter 时,我试图在这个 ContentPage 上激发一个“ Submit”按钮。我想开始那个特别的按钮的活动。
相反,在页面顶部有一个来自 MasterPage 的搜索文本框 & 按钮,这个搜索按钮的事件会触发。
如何控制触发这个 ContentPage 的提交按钮,而不是 MasterPage 的搜索按钮?
我使用 Ektron CMS 为我的内容管理。
可以在服务器端 form控件或 Panel控件上使用 DefaultButton属性。在这种情况下,将控件组合在一个 Panel中,按下相同的按钮:
form
Panel
DefaultButton
<asp:Panel ID="SearchBox" runat="server" DefaultButton="BtnSearch"> ... <asp:Button ID="BtnSearch" runat="server" Text="Search!" /> </asp:Panel> .... <asp:Panel ID="UserPanel" runat="server" DefaultButton="BtnUserSubmit"> ... <asp:Button ID="BtnUserSubmit" runat="server" Text="Submit" /> </asp:Panel>
最简单的方法是将字段和按钮放在 Panel 中,并将默认按钮设置为您希望在输入时激活的按钮。
<asp:Panel ID="p" runat="server" DefaultButton="myButton"> <%-- Text boxes here --%> <asp:Button ID="myButton" runat="server" /> </asp:Panel>
如果需要从代码执行,请使用
Me.Form.DefaultButton = Me.btn.UniqueID
其中 btn是您的按钮控制。
btn
现在可以使用 UseSubmitBehavior 属性禁用在点击提交时不想触发的所有按钮(查看文档获取更多信息)
<asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" />
$(document).ready(function(){ document.getElementById("text_box_id") .addEventListener("keyup", function(event) { event.preventDefault(); if (event.keyCode === 13) { document.getElementById("button_id").click(); } }); });
微软表示:
<form id="Form1" defaultbutton="SubmitButton" defaultfocus="TextBox1" runat="server">
在这里输入链接描述