我的网站上有一个搜索表单和一个登录表单。当登录表单具有焦点时按下输入按钮时,将运行搜索而不是登录。有办法解决这个问题吗?
我已经尝试在登录表单周围使用面板并使用defaultbutton,但是当我这样做时,loginview会出错。
答案 0 :(得分:1)
您可以尝试在登录表单上设置按键事件。在我的头顶,像
$('#loginForm').keypress(function (e) {
if(e.keyCode=='13') //Keycode for "Return"
$('#login').click();
}
});
应该有效,假设您为相关元素提供了适当的ID。
答案 1 :(得分: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();
}}
<强>更新强>
自动转换为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 + "')"
答案 2 :(得分:0)