onKeypress问题?(急)

jerrie_1 2006-05-29 11:27:59
在页面中<body onKeypress=enter()>并且在此页面中有<input type=button…… onClick=input()>
function enter()
{
if( event.keyCode==13)
{
input();
}
}

现在问题就是:当按钮获取焦点时,并回车,这样就相当于两个事件都执行啦,打开了两个网页,请问如何只执行一个事件呢?急
...全文
182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingxuan3000 2006-05-29
  • 打赏
  • 举报
回复
function enter()
{
if( event.keyCode==13 && document.getElementById("button").focused==false)
{
input();
}
}
comstep 2006-05-29
  • 打赏
  • 举报
回复
是 event.srcElement
comstep 2006-05-29
  • 打赏
  • 举报
回复
用event.srcElement()得到触发onKeyPres事件的元素。你判断一下就可以了:

<input type="button" name="inputButton" onClick=input()>
<script>
function enter()
{
var inBut = document.all.inputButton;
if( event.keyCode==13 && event.srcElement != inBut)
{
input();
}
}
btlyeo 2006-05-29
  • 打赏
  • 举报
回复
不明白你的要求,如果只是在BODY上执行onKeypress,就在那里直接写两个函数体就行了呗?
如果你要用第二个函数获取一些什么值,那么把需要的值先获取一下,或者写一个提交表单的submit把整个表单提交?
Apq001 2006-05-29
  • 打赏
  • 举报
回复
仔细想想,其实你的写法不太妙,最好这样写enter
function enter()
{
if( event.keyCode==13)
{
button.click();//button为引用你的页面对象
}
}
Apq001 2006-05-29
  • 打赏
  • 举报
回复
其实这是事件冒泡在作怪,我给出的那句就是取消冒泡,因而应该是非常适合你设计的方法。
Apq001 2006-05-29
  • 打赏
  • 举报
回复
input函数第一句加上如下语句:
event.cancelBubble = true;
kjeny2002 2006-05-29
  • 打赏
  • 举报
回复
在页面中<body onKeypress=enter(true)>并且在此页面中有<input type=button…… onClick=input(false)>
function enter(type)
{
if( event.keyCode==13)
{
input(type);
}
}
function input(type){

}

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧