ContentPage에 텍스트 상자가 있습니다. 사용자가 해당 텍스트 상자에서 Enter 키를 누르면이 ContentPage에서 ‘제출’버튼을 실행하려고합니다. 특정 버튼의 이벤트를 시작하고 싶습니다.
대신 MasterPage의 페이지 상단에 검색 텍스트 상자 및 버튼이 있으며이 검색 버튼의 이벤트가 시작됩니다.
MasterPage의 검색 버튼 대신이 ContentPage의 제출 버튼을 실행하도록 제어하는 방법은 무엇입니까?
콘텐츠 관리를 위해 Ektron CMS를 사용하고 있습니다.
답변
가장 쉬운 방법은 패널 내부에 필드와 버튼을 배치하고 기본 버튼을 입력시 활성화하려는 버튼으로 설정하는 것입니다.
<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
버튼 컨트롤은 어디에 있습니까 ?
답변
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>
답변
이제 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();
}
});
});
답변
Microsoft는 다음과 같이 말합니다.
<form id="Form1"
defaultbutton="SubmitButton"
defaultfocus="TextBox1"
runat="server">