2014-10-17 251 views
1

我有一個aspx網頁表單母版頁,其中包含兩個提交按鈕,一個用於帳戶登錄,一個用於網站搜索。我希望回車鍵提交登錄,但不要登錄網站上的任何其他按鈕,因爲登錄更頻繁。每次在輸入一些登錄信息後點擊回車,搜索按鈕就會啓動並將我帶到一個空的結果頁面。我沒有成功嘗試了以下內容:防止使用回車鍵提交表單提交按鈕

1)使登錄按鈕類型=提交和所有其他只需鍵入=按鈕

2)設置UseSubmitBehavior =「假」的,除了登錄這是所有按鈕設置爲true。

3)在輸入的ID上使用各種JQuery代碼來禁用回車鍵的keydown事件。

唯一有影響的代碼如下,但是它禁用了每一件事情的回車鍵。當我替換選擇器的窗口時,它失敗了。由於整個頁面是一個表單,我沒有添加額外的表單標籤。必須有一種方法可以讓回車鍵只在一個按鈕上工作。由於

$(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

這如果你發佈了生成的HTML代碼而不是asp標籤,那麼你應該很好,因爲問題不是特別關於asp,並不是每個人都一直在運行asp服務器... – 2014-10-17 16:45:01

+0

另外,我沒有看到任何'

'標籤,asp是否生成它..?你不能簡單地將登錄和搜索字段分成不同的形式,以便登錄不會觸發搜索..? – 2014-10-17 16:47:44

+0

'當我替代選擇器的窗口時,它失敗了。'你使用了什麼選擇器? [它應該有效。](http://jsfiddle.net/897mfns0/1/) – Stryner 2014-10-17 16:59:00

回答

2

有很多方法可以實現你想要什麼,我覺得最簡單的就是:

在後面的代碼,在頁面加載方法添加此行:

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