2010-08-12 8 views
18

텍스트 상자와 많은 버튼이 있습니다. 사용자가 텍스트 상자에 "enter"키를 누르면 특정 버튼 클릭 이벤트가 발생합니다. 나는 인터넷에서 "enter"키에 몇 가지 문제가 있다는 것을 읽었고 몇 가지 해결책을 시도했지만 여전히 그 버튼 이벤트 (그 버튼은 페이지의 첫 번째 버튼 임)를 입력합니다. asp.net에서 잘못된 키 발사 키 입력

나는 아무것도하지 않는 버튼을 생성하고를 Page_Load에서이 글을 쓰는 시도 :

idTextBoxFA.Attributes.Add("onkeydown","if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementBtId('" + noEnterButton.UniqueID + "').click();return false;}} else {return true}; "); 

내 모든 페이지 컨트롤을 폼에 있고 나는 형태로 내가 만든 그 버튼에 "defaultButton의"속성을 부여했습니다. 그것도 그 일을하지 못했습니다.

이것이 작동하지 않는 이유와 내가 잘못한 이유가 무엇인지 생각해보십시오.

+0

가능한 복제 (http://stackoverflow.com/questions/7638119을 사용하십시오 : 그냥 다음 사용/how-to-a-default-enter-on-a-certain-button) –

+0

광산이 먼저;) –

+0

두 개의 질문이 너무 유사하여 어떤 플래그를 쓸지 모르겠습니다. StackOverflow의 추세는 먼저 게시 된 것이 아닌 더 명확한 형식의 질문을 선택하는 것입니다. 그러나이 경우에는 표현이 유사하기에 더 인기있는 질문과 더 많은 표를 얻었습니다. 죄송합니다. –

답변

36

Enter 키를 누를 때 활성화되는 제출 단추를 제어하는 ​​표준 방법은 DefaultButton 속성이 올바른 단추로 설정된 asp : Panel에서 컨트롤과 단추를 래핑하는 것입니다.

질문을 올바르게 읽는 경우 Enter 키를 누르면 특정 버튼 하나만 활성화되기 때문에 페이지의 모든 내용을 단일 ASP : Panel로 묶으십시오.

<asp:Panel id="pnlDefaultButton" runat="server" DefaultButton="btnOK"> 
    <!-- All controls here including: --> 
    <asp:Button id="btnOK" runat="server" Text="OK" /> 
</asp:Panel> 
+0

감사합니다.이게 정말 도움이 되었어요 :) – iamserious

+0

어떨까요? 마스터 페이지를 사용하고 내 페이지에는 패널이나 양식이 없습니다. – Marcel

+0

@Marcel - 당신이 의미하는 것이 확실하지 않습니다. 마스터 페이지 사용은 버튼이 하나의 콘텐츠 섹션에 있고 페이지의 다른 부분이 다른 곳에 있지 않으면 많이 변경되지 않습니다. 이 경우 콘텐츠를 재정렬하거나 순수한 JavaScript 솔루션을 조사 할 수 있습니다. –

7

패널이 필요하지 않습니다.

UseSubmitBehavior="false" 
0

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

idTextBoxFA.Attributes.Add("onkeypress", "javascript:var evnt = window.event"; 
if(evnt.keyCode==13) 
{ 
document.getElementById('" + noEnterButton.ClientID + "').click(); 
} 
else{};");