用JS控制回车事件的代码
更新时间:2011年02月20日 23:19:12 作者:
在写代码的时候偶尔会碰到被回车按钮所纠结的时候,例如上周客户反应我们的产品在页面按回车后,总是自动登出,而不是提交数据,客户对此也是意见很大。
我们操作习惯也确实是喜欢用回车建来直接提交数据。经过对项目的一番检查,这其实是页面设计得不好,导致浏览器在加载时把退出登录按钮当成默认的按钮,所以一按回车就触这退出按钮事件。考虑到一个庞大的项目为了这个问题去改页面设计也不太现实,况且客户要求在有“保存”按钮时按回车按钮就触发“保存”按钮事件,有“下一步”按钮时就触发它的事件,有“提交”按钮时就触发相应的事件等等,如果一个个页面去改动那工作量可就大得惊人了。于是乎考虑用直接在模板header文件中用js来实现全站对回车按钮的事件触发,下面是相应的代码:
<script language="javascript" for="document" event="onkeydown">
//回车按钮事件处理
if (event.keyCode == 13){
event.keyCode=0;
var list=document.getElementsByTagName("input");
for(var i=0;i<list.length && list[i];i++)
{
if(list[i].id.indexOf("IBtnNextStep")>0){//ID中包含有“IBtnNextStep”字眼的按钮
list[i].click();
}
if(list[i].id=="BtnSave"){
list[i].click();
}
if(list[i].id=="BtnSumbit"){
list[i].click();
}
}
return false;
}
</script>
其实也蛮简单的,就在模板文件中加入上面那段,先获取回车事件,然后就获取页面的所有按钮,一个个循环判断按钮ID是否符合你要求,是的就去触发按钮的事件。上面代码还存在一个问题就是当你页面中同时存在了那几个ID的按钮时,会导致触发所有按钮,至于如何改进就看实际应用场景了,而在我的项目中是不会出现同时存在这几个按钮,所以可以平安应用。
复制代码 代码如下:
<script language="javascript" for="document" event="onkeydown">
//回车按钮事件处理
if (event.keyCode == 13){
event.keyCode=0;
var list=document.getElementsByTagName("input");
for(var i=0;i<list.length && list[i];i++)
{
if(list[i].id.indexOf("IBtnNextStep")>0){//ID中包含有“IBtnNextStep”字眼的按钮
list[i].click();
}
if(list[i].id=="BtnSave"){
list[i].click();
}
if(list[i].id=="BtnSumbit"){
list[i].click();
}
}
return false;
}
</script>
其实也蛮简单的,就在模板文件中加入上面那段,先获取回车事件,然后就获取页面的所有按钮,一个个循环判断按钮ID是否符合你要求,是的就去触发按钮的事件。上面代码还存在一个问题就是当你页面中同时存在了那几个ID的按钮时,会导致触发所有按钮,至于如何改进就看实际应用场景了,而在我的项目中是不会出现同时存在这几个按钮,所以可以平安应用。
相关文章
js ondocumentready onmouseover onclick onmouseout 样式
下面都是一些上面的事件触发的事先定义的代码。2010-07-07
JS & JQuery 动态添加 select option
这篇文章主要介绍了JS & JQuery 动态添加 select option 的相关资料,非常不错具有参考借鉴价值,感兴趣的朋友一起看下吧2016-06-06
兼容IE,firefox的获取节点的文本值的javascript代码
javascript获取节点的文本值,已经考虑了兼容性。大家可以放心使用。注意了这里的兼容没有使用innerText,如果要使用兼容innerText,请参考脚本之家以前发布的文章。2009-12-12


最新评论