0

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

我已经尝试在登录表单周围使用面板并使用默认按钮,但是当我这样做时登录视图错误。

4

3 回答 3

1

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

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

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

于 2010-06-08T18:10:09.733 回答
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();  
}}

更新

由 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 + "')"
于 2010-06-08T18:10:20.107 回答
0

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

于 2010-06-08T18:10:27.943 回答