2010-04-06 67 views
0

我有一個網頁,有兩個按鈕和一個文本框。當頁面加載和用戶按下輸入時,第一個按鈕被點擊 - 這是沒問題的。ASP.NET:如何指定哪個按鈕默認對輸入按鈕起作用?

我想確保如果用戶輸入文本框並在其中輸入任何內容,然後按下輸入,則會單擊第二個按鈕。 當我輸入文本框時,我可以確定當按下回車鍵時將使用第一個按鈕,因爲它有點深藍色。

我試過JavaScript的

if (event && event.keyCode == 13) 
    document.getElementById("Button2").click(); 

,但它在某種程度上是行不通的。所以我的第二個想法是,當我處於特定的文本框(深藍色邊框的按鈕)時,必須有可能告訴瀏覽器哪個按鈕應該默認對輸入按鍵作出反應。

編輯:它可能關係,首先是按鍵輸入,第二個是用asp:按鈕

EDIT2:Page.Form.DefaultButton是不是一種選擇,因爲在某種程度上兩個默認的按鈕。如果用戶沒有輸入文本框,應該點擊一個,如果他在文本框內,應該點擊另一個文本框。更改DefaultButton是不是一種選擇,因爲這由用戶輸入的textBox後需要回傳...

回答

1
<asp:Panel runat="server" DefaultButton="Button2" > 
    <asp:TextBox runat="server" /> 
    <asp:Button ID="Button2" runat="server" Text="Button2" OnClientClick="alert('Button2')"/> 
</asp:Panel> 

只要您開始使用文本框 - button2將是默認按鈕。直到那時另一個按鈕將是默認的

+0

@BritishDeveloper甜 - 我不知道你可以設置單個面板的DefaultButton。 – PhilPursglove 2010-04-06 14:37:23

+0

這是偉大的,我不知道,如果...如果它不是共享點生成的網站,在這個面板內有一個控制asp:登錄ID「登錄」和一個按鈕,我是談論,也與ID「登錄」...我不能改變這一點。所以這也不是一個選項,因爲設置DefaultButton =「login」時會產生錯誤,因爲使用此ID找到Login控件。 – agnieszka 2010-04-06 14:49:16

+0

在設計視圖中,您可以單擊登錄控件並選擇「轉換爲模板」,然後您可以獲取該按鈕的ID。還是你沒有訪問登錄控制? (我不熟悉sharepoint) – BritishDeveloper 2010-04-06 15:47:57

0

DefaultButton屬性

2

Page.Form.DefaultButton允許設置哪個按鈕將向Enter鍵反應。

+0

請仔細閱讀!我不想更改默認點擊按鈕,因爲當用戶在頁面加載後按下Enter時應該點擊第一個按鈕。只有當焦點位於文本框上時,才應該單擊其他按鈕。我不能使用你的代碼,因爲這是一個服務器代碼,我需要在客戶端上做到這一點 – agnieszka 2010-04-06 14:30:30