没有循环Javascript代码也会运行两次?为什么?

目的:当用户在文本框中输入用户名后,按回车键,发送邮件。

form的onKeyDown代码:
if (event.keyCode==13)
{
document.getElementById("changepwdrequest").click(); '调用按钮代理发送邮件
}

changepwdrequest按钮公式代码:
@command([ToolsRunMacro];"WebSubmit");
代码就这两句。

用IE的"开发人员工具"发现document.getElementById("changepwdrequest").click();
这一句代码会运行两次??!!
当代码运行到document.getElementById("changepwdrequest").click(); 时,代码跳到


执行onclick="Return _doClick",然后执行function _doClick(v,o,t,h)代码的form.submit();
运行结束后,代码又回到document.getElementById("changepwdrequest").click();这句。然后运行结束。导致document.getElementById("changepwdrequest").click();这句代码运行两次。
参与11

11同行回答

shelleychenshelleychen软件开发工程师ISO
没有答案,UP!!显示全部
没有答案,UP!!收起
互联网服务 · 2012-07-26
浏览1521
shelleychenshelleychen软件开发工程师ISO
回复 10# am9 不会吧,难道一定要把代理按钮的代码修改为前端吗??不可能,这样无法解决吗。。。。显示全部
回复 10# am9

不会吧,难道一定要把代理按钮的代码修改为前端吗??不可能,这样无法解决吗。。。。收起
互联网服务 · 2012-07-25
浏览1713
am9am9软件开发工程师am9x.sinaapp
回复 9# shelleychen     要简化模型,不要牵涉这么多。建议把原本涉及到代理按钮的代码先改成前端的,比如textbox.value += "/"+(new Date())显示全部
回复 9# shelleychen


    要简化模型,不要牵涉这么多。建议把原本涉及到代理按钮的代码先改成前端的,比如
textbox.value += "/"+(new Date())收起
互联网服务 · 2012-07-25
浏览1687
shelleychenshelleychen软件开发工程师ISO
回复 8# am9 还是不行,一样会同时发送两封邮件。显示全部
回复 8# am9

还是不行,一样会同时发送两封邮件。

A.jpg

收起
互联网服务 · 2012-07-25
浏览1724
am9am9软件开发工程师am9x.sinaapp
如果想简单解决问题可以这样if (event.keyCode==13){  if(window.submitLock != true){    window.submitLock =true;    document.getElementById("changepwdrequest").click(); '调用按钮代理发送邮件  }}...显示全部
如果想简单解决问题可以这样
if (event.keyCode==13){
  if(window.submitLock != true){
    window.submitLock =true;
    document.getElementById("changepwdrequest").click(); '调用按钮代理发送邮件
  }
}收起
互联网服务 · 2012-07-25
浏览1678
shelleychenshelleychen软件开发工程师ISO
没人帮解,继续顶!显示全部
没人帮解,继续顶!收起
互联网服务 · 2012-07-24
浏览1692
shelleychenshelleychen软件开发工程师ISO
这个问题,还没人帮解呀!!??:'(显示全部
这个问题,还没人帮解呀!!??:'(收起
互联网服务 · 2012-07-24
浏览1733
shelleychenshelleychen软件开发工程师ISO
回复 4# alan_31     应该不是这个问题,我感觉应该是Lotus本身的问题。我用IE的“开发人员工具”发现:event.keycode判断后,运行onclick="Return _doClick",而这个单子上回车键本身就触发了表单的提交,导致代理运行了2次。...显示全部
回复 4# alan_31


    应该不是这个问题,我感觉应该是Lotus本身的问题。我用IE的“开发人员工具”发现:event.keycode判断后,运行onclick="Return _doClick",而这个单子上回车键本身就触发了表单的提交,导致代理运行了2次。收起
互联网服务 · 2012-07-24
浏览1690
alan_31alan_31软件工程师perfect
1.试试用onkeypress;2.看看调试工具的调用堆栈,第二次是在哪触发的;3.写正规点,在input里面添加事件代码;显示全部
1.试试用onkeypress;
2.看看调试工具的调用堆栈,第二次是在哪触发的;
3.写正规点,在input里面添加事件代码;收起
机械装备 · 2012-07-23
浏览1689
shelleychenshelleychen软件开发工程师ISO
回复 2# alan_31     试过,不要onKeyDown这段代码,按回车不会提交。显示全部
回复 2# alan_31


    试过,不要onKeyDown这段代码,按回车不会提交。收起
互联网服务 · 2012-07-23
浏览1669

提问者

shelleychen
软件开发工程师ISO
擅长领域: 数据库

相关问题

相关资料

问题状态

  • 发布时间:2012-07-23
  • 关注会员:0 人
  • 问题浏览:7051
  • 最近回答:2012-07-26
  • X社区推广