2010-06-08 93 views
0

我的網站上有一個搜索表單和一個登錄表單。當登錄表單具有焦點時按下輸入按鈕時,將執行搜索而不是登錄。有沒有辦法來解決這個問題?輸入登錄表格的密碼

我已經嘗試在登錄窗體周圍使用面板,並使用defaultbutton,但是當我這樣做時loginview錯誤。

+0

你指的是ASP.NET登錄控件嗎? – 2010-06-08 18:06:14

回答

1

您可以嘗試在登錄表單上設置按鍵事件。關閉我的頭頂,像

$('#loginForm').keypress(function (e) { 
    if(e.keyCode=='13') //Keycode for "Return" 
    $('#login').click(); 
    } 
}); 

應該工作,假設你給所涉及的元素提供適當的ID。

0

可以嘗試在運行時這樣

Login loginControl = (Login)lvLoginView.FindControl("logLogin"); 
TextBox tbUserName = (TextBox)loginControl.FindControl("UserName"); 
TextBox tbPassword = (TextBox)loginControl.FindControl("Password"); 
Button loginButton = (Button)loginControl.FindControl("LoginButton"); 
tbUserName.Attributes["onKeyPress"] = "KeyDownHandler('" + loginButton.ClientID + "')"; 
tbPassword.Attributes["onKeyPress"] = "KeyDownHandler('" + loginButton.ClientID + "')"; 

添加屬性和一些JS:

function KeyDownHandler(btn){ 
// process only the Enter key 
if (event.keyCode == 13) {  
// cancel the default submit 
    event.returnValue = false; 
    event.cancel = true; 
    var obj = document.getElementById(btn); 
    obj.click(); 
}} 

UPDATE

自動轉換爲Telerik的

的VB.NET禮貌
Dim loginControl As Login = DirectCast(lvLoginView.FindControl("logLogin"), Login) 
Dim tbUserName As TextBox = DirectCast(loginControl.FindControl("UserName"), TextBox) 
Dim tbPassword As TextBox = DirectCast(loginControl.FindControl("Password"), TextBox) 
Dim loginButton As Button = DirectCast(loginControl.FindControl("LoginButton"), Button) 
tbUserName.Attributes("onKeyPress") = "KeyDownHandler('" + loginButton.ClientID + "')" 
tbPassword.Attributes("onKeyPress") = "KeyDownHandler('" + loginButton.ClientID + "')" 
+0

運行時你的意思是表單加載?因爲這全都在VB中完成。 – Andrew 2010-06-08 19:00:16

+0

好吧,我放的代碼應該很容易轉換成VB,它的只是C# – 2010-06-08 19:42:24

0

如果你在談論HTML,那麼this建議製表符順序(瞭解更多關於here)與表單創建的順序或順序有關,行爲取決於用戶代理。