Opera重定向问题

时间:2010-08-30 14:54:22

标签: javascript asp.net

大家好我有这样的问题。

例如我在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

1 个答案:

答案 0 :(得分:1)

好吧,所以你在这里遇到的问题是Opera(保佑它)不能很好地支持onKeyDown命令 - 所以你必须改为onKeyUponKeyPressquirksmode上有一个非常方便的HTML表格来解释这一点。

鉴于你只是试图捕获一个控制键onKeyUp可能是你最好的选择。我被迫组合onKeyDownonKeyPress以捕获文本输入和控制键(但是因为你希望文本输入正常工作,所以你不需要走这么远)。 / p>

应该只是在示例片段中将“onkeydown”切换为“onkeyup”。

或许有一个问题,为什么你要做上述事情。我不知道Login()做了什么,但是构建一个包含3个部分的表单(输入文本,输入密码和输入提交按钮)将默认 - 在任何一个按下输入时提交表单在输入框中,您只需向调用onSubmit

的表单添加Login();个事件即可