특정 버튼에 기본 '입력'을 설정하는 방법


81

ContentPage에 텍스트 상자가 있습니다. 사용자가 해당 텍스트 상자에서 Enter 키를 누르면이 ContentPage에서 '제출'버튼을 실행하려고합니다. 특정 버튼의 이벤트를 시작하고 싶습니다.

대신 MasterPage의 페이지 상단에 검색 텍스트 상자 및 버튼이 있으며이 검색 버튼의 이벤트가 시작됩니다.

MasterPage의 검색 버튼 대신이 ContentPage의 제출 버튼을 실행하도록 제어하는 ​​방법은 무엇입니까?

콘텐츠 관리를 위해 Ektron CMS를 사용하고 있습니다.


콘텐츠 페이지에 패널이
있습니까?

감사합니다 V4Vendetta, 예, 패널을 추가하고 제출할 기본 버튼을 설정하여이 문제를 해결했습니다
Ron

답변:


99

가장 쉬운 방법은 패널 내부에 필드와 버튼을 배치하고 기본 버튼을 입력시 활성화하려는 버튼으로 설정하는 것입니다.

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

onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;ctl00_MainContentPlaceHolder_btnSave&#39;)">페이지에 다음과 같은 내용 이 추가
되므로이

완벽한 솔루션 - 감사 커크
센사

1
@kirk 텍스트 상자가 버튼 위 어딘가에 있으면 어떻게하면 똑같은 결과를 얻을 수 있을까요?
Jyotish Singh

당신은 같은 일을 할 수 @JyotishSingh 당신은 넣어 경우 TextBoxButton같은 내 Panel. 그런 다음 DefaultButton 속성을 설정합니다 .
Kirk

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 요소가 필요하지 않습니다.
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();
    }
    });
});

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.