2008-10-02 64 views
2

這似乎是一個常見問題,但我找不到解決方案。通過在文本字段上按Enter鍵提交表單不起作用

我輸入了我創建的登錄控件中的用戶名和密碼。 然後我輸入一次我輸入密碼後頁面剛剛刷新。它會觸發頁面加載事件,但不會觸發點擊事件中的按鈕。

如果我按提交按鈕,那麼一切工作正常。

回答

3

,但你需要爲它供給了:

+0

clientID是一個錯誤?看起來像是frm.DefaultButton = btn.UniqueID; – Praesagus 2009-08-10 22:09:56

0

按ENTER鍵上的文本輸入執行Form.onsubmit,不Button.onclick

我想這是因爲你可以有一個沒有實際提交按鈕的窗體(完全取決於使用ENTER)。使用表單的默認按鈕是正確的

<form runat="server" DefaultButton="SubmitButton"> 
1

如果您使用ASP.NET 2.0或更高版本,您可以設置默認按鈕屬性爲您的網頁的表格正確的ID,因爲它會呈現爲HTML。

,這樣你就如上面的喬恩說:

<form runat="server" DefaultButton="SubmitButton"> 

但確保您使用要呈現按鈕的名稱。 您可以實現這個功能,我可以在您的控件中公開Button或將返回它的ClientId的方法。

假設你的按鈕叫做btnSubmit,並且你實現了你的控件ucLogin。

讓表單的ID

<form runat="server" id="form1"> 

然後在您的網頁加載在你的代碼的網頁背後,由它交給你的按鈕的客戶端ID設置DefaultButton。

protected void Page_Load(object sender, EventArgs e) 
{ 
    form1.DefaultButton = ucLogin.btnSubmit.ClientID; 
} 
+0

如果按鈕位於控件內部,這種方式會起作用嗎? – WebDude 2008-10-02 11:00:56

相關問題