2014-10-17 9 views
1

계정 로그인과 사이트 검색을위한 두 개의 제출 버튼이있는 aspx 웹 양식 마스터 페이지가 있습니다. 입력 키가 로그인을 위해 제출되지만 로그인이 더 자주 사용됨에 따라 사이트의 다른 버튼에는 입력하지 말아야합니다. 일부 로그인 정보를 입력 한 후 Enter 키를 누를 때마다 검색 버튼이 켜지고 빈 결과 페이지로 이동합니다. 내가 성공하지 않고 노력했습니다 다음 :하나의 제출 버튼을 제외하고 모두 입력 버튼으로 양식 제출 방지

1)입니다 로그인을 제외한 모든 버튼의 UseSubmitBehavior = "false"로 설정) = 로그인 버튼 타입을 제출하고 다른 모든 단지 버튼

2 = 입력 true로 설정하십시오.

3) 입력 ID에 대해 다양한 JQuery 코드를 사용하여 Enter 키의 keydown 이벤트를 비활성화하십시오.

효과가있는 유일한 코드는 다음과 같았지만 모든 것에 대해 Enter 키가 비활성화되었습니다. 선택기 창을 대체 할 때 작동하지 못했습니다. 전체 페이지가 양식이므로 추가 양식 태그를 추가하지 않았습니다. Enter 키가 하나의 버튼에서만 작동하도록하는 방법이 있어야합니다. 감사합니다

$(function() { 
    $(window).keydown(function (event) { 
     if (event.keyCode == 13) { 
      event.preventDefault(); 
      return false; 
     } 
    }); 
}); 

search: 

<div id="SearchForm"> 
<fieldset> 
    <asp:TextBox ID="searchQuery" runat="server" size="15" /> 
</fieldset> 
<asp:ImageButton ID="searchButton" runat="server" onmouseover="this.src='/RESOURCES/buttons/search_hover.png'" 
    onmouseout="this.src='/RESOURCES/buttons/search_active.png'" ImageUrl="/RESOURCES/buttons/search_active.png" 
    type="button" Style="font-size: 11px;" class="SearchBtn" alt="Search" OnClick="searchButton_Click" 
    UseSubmitBehavior="False" CausesValidation="False" /> 
</div> 

login: 

    <div id="logonbox"> 
     <asp:Label ID="Label1" class="LoginLabel1" runat="server" Text="Account Number"></asp:Label> 
     <asp:TextBox ID="AcctNum" class="AcctNumTexbox" runat="server"></asp:TextBox> 
     <asp:Label ID="Label2" runat="server" class="LoginLabel2" Text="Access Code"></asp:Label> 
     <asp:TextBox ID="MtrNum" class="MtrNumTexbox" runat="server"></asp:TextBox> 
     <asp:ImageButton ID="Login1" type="submit" runat="server" class="boxsubmitbtn" src="/resources/buttons/login.gif" 
     OnClick="LogInBtn_Click" UseSubmitBehavior="True" CausesValidation="False" /> 
    <p> 
     <a href="/ACCOUNTS/accounts.aspx">Need help logging in?</a> 
    </p> 
</div>  
+2

그것 '이 줄을 추가 페이지로드 방법에 뒤에 코드에서

는, 항상 asp에 관한 질문이 아니기 때문에 모든 사람이 ASP 서버를 항상 실행하고 있기 때문에'asp' 태그 대신에 생성 된'HTML' 코드를 게시하면 멋질 것입니다 ... –

+0

또한 보지 못합니다 어떤 '

'태그, 그것을 생성하지 않습니다 ..? 로그인이 검색을 유발하지 않도록 로그인 필드와 검색 필드를 다른 양식으로 분리 할 수 ​​있습니까? –

+0

'셀렉터를 창으로 대체했을 때 작동하지 못했습니다. '어떤 선택자를 사용 했습니까? [그것은 효과가 있었음에 틀림 없다.] (http://jsfiddle.net/897mfns0/1/) – Stryner

답변

2

당신이 원하는 것을 달성하기 위해 여러 가지 방법이 있습니다, 내가 찾을 수있는 가장 쉬운입니다

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.Form.DefaultButton = Login1.UniqueID; 
}