як встановити за замовчуванням "Enter" на певній кнопці


81

На ContentPage є текстове поле. Коли користувач натискає Enter у цьому текстовому полі, я намагаюся запустити кнопку "Надіслати" на цій ContentPage. Я хотів би вимкнути подію цієї конкретної кнопки.

Натомість у верхній частині сторінки зі сторінки MasterPage є текстове поле та кнопка пошуку, і подія цієї кнопки пошуку запускається.

Як я можу керувати вимкненням кнопки подання цього ContentPage замість кнопки пошуку MasterPage?

Я використовую Ektron CMS для управління вмістом.


Чи є у вас панель на сторінці вмісту, можливо, ви можете встановити кнопку за замовчуванням як подання в такому випадку
V4Vendetta

Дякую V4Vendetta, так, я вирішив це шляхом додавання панелі та встановлення кнопки за замовчуванням для подання
Рон

Відповіді:


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

Ідеальне рішення - спасибі Kirk
Sensa

1
@kirk Що робити, якщо текстове поле знаходиться десь над кнопкою, я маю на увазі не разом, як тоді ми могли б досягти того ж?
Jyotish Singh

@JyotishSingh Ви можете зробити те саме, якщо покласти TextBoxі Buttonв те саме 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

І для цього не потрібні додаткові елементи 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();
    }
    });
});

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.