您的位置:首页 > 其它

解决Firefox中按下回车键重新加载页面的问题

2008-10-23 08:24 295 查看
我们在网上填写表单的时候,有一个习惯,就是当终于填完了最后一个框框后,如释重负,顺手一按回车,就提交了。

比如一个用户登录页面,以前我在最后一个文本框中添加了这样的脚本:

txtPwd.Attributes.Add("onkeydown", "if(event.keyCode==13) event.keyCode=9;");

然后在登录按钮加上:

btnLogin.Attributes.Add("onfocus", "this.click();");

也就是说先把回车键换成tab键,在登录按钮获取焦点后自动点击。这种方法虽然不是很完美,但在IE下确实还是有用的,可是拿到Firefox下就不行了,因为在Firefox下,keyCode是只读的,并不能通过脚本改变。

后来在网上找到这样一段脚本:

function doClick(linkId, e){
var e=(typeof event!='undefined')?window.event:e;
if(e.keyCode != 13){
return;
}
var fireOnThis = document.getElementById(linkId)
if (document.createEvent)
{
var evObj = document.createEvent('MouseEvents')
evObj.initEvent( 'click', true, false )
fireOnThis.dispatchEvent(evObj)
}
else if (document.createEventObject)
{
fireOnThis.fireEvent('onclick')
}
}

这段脚本的作用是,当用户按下回车键时,触发指定的按钮,而不是自动加载页面,然而,在测试的时候,Firefox的确好使,IE下不知为啥有不灵了。我不知道这段脚本中哪句话IE不认识,也不想费时间研究了。于是,就在程序中做了个判断,针对不同的浏览器注册不同的脚本。

最后这个方法个人觉得还是挺好的,只是不知为啥在IE下不行?如果有js高手路过,请顺便指教一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: