cách đặt 'enter' mặc định trên một nút nhất định


81

Có một hộp văn bản trên ContentPage. Khi người dùng nhấn Enter trong hộp văn bản đó, tôi đang cố kích hoạt nút 'Gửi' trên Trang nội dung này. Tôi muốn loại bỏ sự kiện của nút cụ thể đó.

Thay vào đó, có một hộp văn bản & nút tìm kiếm trên đầu trang từ Trang chủ và sự kiện của nút tìm kiếm này sẽ tắt.

Làm cách nào để kiểm soát để tắt nút gửi của Trang ContentPage này, thay vì nút tìm kiếm của Trang chủ?

Tôi đang sử dụng Ektron CMS để quản lý nội dung của mình.


Bạn có một bảng điều khiển ở các trang nội dung, có thể bạn có thể thiết lập nút mặc định là nộp trong trường hợp đó
V4Vendetta

Cảm ơn V4Vendetta, vâng, tôi đã giải quyết vấn đề này thông qua việc thêm một bảng điều khiển và đặt nút mặc định để gửi
Ron

Câu trả lời:


99

Cách dễ nhất là đặt các trường và nút bên trong Bảng điều khiển và đặt nút mặc định thành nút bạn muốn kích hoạt khi enter.

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

Xin lưu ý rằng giải pháp này dựa vào javascript, như một cái gì đó như onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;ctl00_MainContentPlaceHolder_btnSave&#39;)">được thêm vào trang của bạn
R. Schreurs

Giải pháp hoàn hảo - Cảm ơn Kirk
Sensa

1
@kirk Điều gì sẽ xảy ra nếu hộp văn bản ở đâu đó phía trên nút, ý tôi là không cùng nhau thì làm sao chúng ta có thể đạt được điều tương tự?
Jyotish Singh

@JyotishSingh Bạn có thể làm điều tương tự nếu bạn đặt TextBoxButtonbên trong giống nhau Panel. Sau đó đặt thuộc tính DefaultButton .
Kirk

36

nếu bạn cần làm điều đó từ mã, hãy sử dụng

Me.Form.DefaultButton = Me.btn.UniqueID

Trong trường hợp btnlà nút điều khiển của bạn.


16

Bạn có thể sử dụng thuộc DefaultButtontính trên formđiều khiển hoặc điều khiển phía máy chủ Panel. Trong trường hợp của bạn, hãy nhóm các điều khiển lại với nhau trong một Panelnút sẽ kích hoạt cùng một nút:

<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

Giờ đây, bạn có thể sử dụng thuộc tính UseSubmitBehavior để vô hiệu hóa tất cả các nút bạn không muốn kích hoạt khi nhấn gửi (xem tài liệu để biết thêm thông tin)

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

1
Sao tuyệt đối! Đây là những gì tôi cần!
Stefano Magistri

Và nó không yêu cầu các phần tử html / asp.net bổ sung có thể không hoạt động với bố cục trang.
Walter

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.