在页面上放一个文本框,如果在该文本框中按一下回车,浏览器通常会自作聪明地回传整个页面,但用户通常喜欢按回车完成当前文本框的输入,而不希望此时进行页面回传,在IE/FirFox等浏览器中,我们用下面的方法避免回传(jQuery):
$('#TexBoxId').keydown(function(event)
{
if(event.keyCode==13)
{
.....//完成希望的其他工作
return false;//防止页面提交
}
}
OPERA浏览器的用户越来越多,你会发现,上面的办法在OPERA中无效,页面依然被提交,网上搜了很久,没有好的解决方案,突然想到,既然是在文本框里面按回车才会自动提交,那何不把输入焦点移开试试?
$('#TexBoxId').keydown(function(event)
{
if(event.keyCode==13)
{
.....//完成希望的其他工作
if ($.browser.opera)//注意这句话
$(this).blur();
return false;//防止页面提交
}
}
通过上面的偏方,成功解决了该棘手问题,如果希望保留输入焦点,可以再用settimeout方法,延时让文本框重新获得输入焦点。