Forms 输入登录表单的密钥

Forms 输入登录表单的密钥,forms,login,key,enter,Forms,Login,Key,Enter,我的网站上有一个搜索表单和一个登录表单。当登录表单具有焦点时按下enter按钮时,将运行搜索而不是登录。有办法解决这个问题吗 我已经尝试在登录表单周围使用面板并使用defaultbutton,但是当我这样做时,loginview会出错。您可以尝试在登录表单上设置按键事件。在我的头顶上,就像 $('#loginForm').keypress(function (e) { if(e.keyCode=='13') //Keycode for "Return" $('#login').cl

我的网站上有一个搜索表单和一个登录表单。当登录表单具有焦点时按下enter按钮时,将运行搜索而不是登录。有办法解决这个问题吗


我已经尝试在登录表单周围使用面板并使用defaultbutton,但是当我这样做时,loginview会出错。

您可以尝试在登录表单上设置按键事件。在我的头顶上,就像

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

假设您为所涉及的元素提供了适当的ID,那么应该可以工作。

您可以尝试在运行时像这样添加属性吗

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();  
}}
更新

自动转换为VB.NET,由telerik提供

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 + "')"

如果您谈论的是HTML,则建议选项卡顺序(了解更多相关信息)或表单的创建顺序,行为取决于用户代理。

您指的是ASP.NET登录控件吗?运行时指的是表单加载吗?因为这些都是在VB中完成的。好吧,我放的代码应该很容易转换成VB,它只是C#