2010-06-08 137 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)与表单创建的顺序或顺序有关,行为取决于用户代理。