大家好我有这样的问题。
例如我在http://localhost/Search.aspx 我的页面中有2个文本框(txtUserName和txtPassword)用于登录。 当任何这些文本框聚焦时,用户可以按Enter键调用Login()方法。 我像这样捕获输入密钥
txtUserName.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {Login();return false;}} else {return true}; ");
txtPassword.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {Login();return false;}} else {return true}; ");
它调用Login()方法,并且在执行该方法后,Opera将页面重定向到我的默认页面(http://localhost/Default.aspx)
其他浏览器正常工作,换句话说,它们不会将我重定向到默认页面。
Opera版本10.61
答案 0 :(得分:1)
好吧,所以你在这里遇到的问题是Opera(保佑它)不能很好地支持onKeyDown
命令 - 所以你必须改为onKeyUp
或onKeyPress
。 quirksmode上有一个非常方便的HTML表格来解释这一点。
鉴于你只是试图捕获一个控制键onKeyUp
可能是你最好的选择。我被迫组合onKeyDown
和onKeyPress
以捕获文本输入和控制键(但是因为你希望文本输入正常工作,所以你不需要走这么远)。 / p>
应该只是在示例片段中将“onkeydown”切换为“onkeyup”。
或许有一个问题,为什么你要做上述事情。我不知道Login()
做了什么,但是构建一个包含3个部分的表单(输入文本,输入密码和输入提交按钮)将默认 - 在任何一个按下输入时提交表单在输入框中,您只需向调用onSubmit
Login();
个事件即可