Html 表单外的哪些内容可能破坏隐式表单提交(Enter键)?

Html 表单外的哪些内容可能破坏隐式表单提交(Enter键)?,html,forms,form-submit,enter,Html,Forms,Form Submit,Enter,我已将此简单搜索表单添加到数据库webapp的菜单区域: <form action='list.php'> <input name='textinput1' placeholder='"._('(quick search)')."' style='width:7em'> <input type='hidden' name='texttarget1' value='Name'> </form> 它适用于大多数页面,但在两个页面上,按En

我已将此简单搜索表单添加到数据库webapp的菜单区域:

<form action='list.php'>
  <input name='textinput1' placeholder='"._('(quick search)')."' style='width:7em'>
  <input type='hidden' name='texttarget1' value='Name'>
</form>

它适用于大多数页面,但在两个页面上,按Enter键什么也不做。您可以在(一个空的演示实例)上试用-使用“demo”/“demo”登录。菜单栏搜索表单不会提交的两个页面是“newperson/Org”(一个大的编辑表单)和“DB Settings”(一堆小表单和一些AJAX)

搜索表单在所有页面上都是完全相同的,因此显然这些页面上的其他内容正在影响搜索表单的行为,这在我看来是不可能的。有什么想法可以做到这一点,以及该怎么做吗?

以下几行:

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}
document.onkeypress = stopRKey;
您正在收听所有按键,如果按键代码为13(Enter),则返回false,这会阻止默认行为,在本例中是提交表单

重要的是,我是如何发现问题的:

  • 转到正在工作的页面,打开Chrome开发工具
  • 在“元素”选项卡上,选择输入元素
  • 查看“事件侦听器”选项卡,发现与键盘事件无关
  • 转到其中一个断页并重复该过程
  • 这次在“事件监听器”选项卡上可以看到更多的事件监听器,包括一个用于
    keypress
  • 展开
    按键
    侦听器,您将看到该侦听器已附加到
    文档
    ,它会告诉您与该侦听器关联的代码的文件和行号

您链接/暗示的页面上有相关代码(
onsubmit
handlers),但您的问题正文中没有包含这些代码-请提供一个链接,因为外部链接可能会中断,并会对未来的问题访问者产生价值。很好的回答!我想到了我编写的标记和jQuery代码,但错过了几年前的简单JS(我甚至没有编写)。一旦我知道了罪魁祸首,只需添加`&&node.name=“textinput1”`修复了它。你是怎么找到它的?调试器?(我在使用调试器方面很糟糕——我应该学习。)是的,Chrome的开发工具真的很强大,值得花些时间来阅读。我已经在我的答案中列出了找到你的问题的步骤,以便其他阅读本文的人可以看到