如何在某个按钮上设置默认的“输入”


81

ContentPage上有一个文本框。当用户在该文本框中按Enter时,我试图在此ContentPage上触发“提交”按钮。我想触发该特定按钮的事件。

而是在MasterPage的页面顶部有一个搜索文本框和按钮,并且此搜索按钮的事件触发。

如何控制触发此ContentPage的Submit按钮,而不是MasterPage的搜索按钮?

我正在使用Ektron CMS进行内容管理。


内容页面中是否有面板,在这种情况下,您可以将默认按钮设置为“提交”
吗?-V4Vendetta,2011年

感谢V4Vendetta,是的,我通过添加一个面板并设置了defaultbutton来解决此问题
Ron

Answers:


99

最简单的方法是将字段和按钮放在面板内,并将默认按钮设置为要在回车时激活的按钮。

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

请注意,此解决方案依赖于javascript,因为onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;ctl00_MainContentPlaceHolder_btnSave&#39;)">您的网页中添加了类似 内容
R. Schreurs,2015年

完美的解决方案-感
谢柯克

1
@kirk如果文本框位于按钮上方某处,我的意思是不在一起怎么办,那么我们如何才能实现相同的效果呢?
Jyotish Singh'7

@JyotishSingh如果将TextBoxButton放在相同的内,则可以执行相同的操作Panel。然后设置DefaultButton属性。
柯克

36

如果您需要通过代码进行操作,请使用

Me.Form.DefaultButton = Me.btn.UniqueID

btn您的按钮控件在哪里。


16

您可以DefaultButton在服务器端form控件或Panel控件上使用该属性。在您的情况下,请将控件分组到一个Panel应触发相同按钮的位置:

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

6

现在,您可以使用UseSubmitBehavior属性来禁用所有您不想在单击“提交”时触发的按钮(有关更多信息,请参阅文档)

    <asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" />

1
绝对的明星!这就是我所需要的!
Stefano Magistri's

而且它不需要可能与页面布局不兼容的其他html / asp.net元素。
沃尔特

0
$(document).ready(function(){
    document.getElementById("text_box_id")
    .addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
        document.getElementById("button_id").click();
    }
    });
});

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.