這似乎是一個常見問題,但我找不到解決方案。通過在文本字段上按Enter鍵提交表單不起作用
我輸入了我創建的登錄控件中的用戶名和密碼。 然後我輸入一次我輸入密碼後頁面剛剛刷新。它會觸發頁面加載事件,但不會觸發點擊事件中的按鈕。
如果我按提交按鈕,那麼一切工作正常。
這似乎是一個常見問題,但我找不到解決方案。通過在文本字段上按Enter鍵提交表單不起作用
我輸入了我創建的登錄控件中的用戶名和密碼。 然後我輸入一次我輸入密碼後頁面剛剛刷新。它會觸發頁面加載事件,但不會觸發點擊事件中的按鈕。
如果我按提交按鈕,那麼一切工作正常。
,但你需要爲它供給了:
按ENTER鍵上的文本輸入執行Form.onsubmit,不Button.onclick。
我想這是因爲你可以有一個沒有實際提交按鈕的窗體(完全取決於使用ENTER)。使用表單的默認按鈕是正確的
<form runat="server" DefaultButton="SubmitButton">
如果您使用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;
}
如果按鈕位於控件內部,這種方式會起作用嗎? – WebDude 2008-10-02 11:00:56
clientID是一個錯誤?看起來像是frm.DefaultButton = btn.UniqueID; – Praesagus 2009-08-10 22:09:56