Javascript ';输入键';不会在Firefox中提交表单,但会在Chrome中提交表单,为什么?

Javascript ';输入键';不会在Firefox中提交表单,但会在Chrome中提交表单,为什么?,javascript,html,Javascript,Html,我有一个表单,非常基本,当我按下enter键时,firefox中什么都不会发生,但在google chrome中它会提交。还没有尝试其他浏览器 在firefox中按enter键时,什么也不会发生 单击submit按钮时,它在两种浏览器中都可以正常工作 表单位于DIV中,表单也包含javascript,下面是简化的表单: <form id="nav_form_main" name="nav_form_main" action="bincgi/sql_query.php" target="if

我有一个表单,非常基本,当我按下enter键时,firefox中什么都不会发生,但在google chrome中它会提交。还没有尝试其他浏览器

在firefox中按enter键时,什么也不会发生

单击submit按钮时,它在两种浏览器中都可以正常工作

表单位于DIV中,表单也包含javascript,下面是简化的表单:

<form id="nav_form_main" name="nav_form_main" action="bincgi/sql_query.php" target="iframe001" method="get" onSubmit="reset_pager();">

<input type="button" name="nav_submit" id="nav_submit" value="Search" onClick="reset_and_subm();" style="width: 58px; font-size: 13px;">

//some other elements...

</form>
根本不调用重置寻呼机功能。。。这很奇怪,因为它是一个“onsubmit”函数。所以就好像表格根本没有提交。 但是,目标iframe中的结果看起来很好,没有任何问题

有什么想法吗


谢谢

只有当
如Diodeus所述,如果您想使用Enter键提交表单,您的表单中需要一个
标记时,才会触发提交输入

onsubmit
事件中,
reset\u pager
函数未触发的原因是
onsubmit
事件从未触发。尽管这有点违反直觉,但在表单上使用
submit()
方法(就像您在
reset\u和\u subm
函数中所做的那样)不会导致
onsubmit
事件触发

您有两个选择:

  • 您可以将
    添加到表单中,并将所有逻辑放入
    onsubmit
    回调函数中

  • 查看表单上的所有
    按键事件。如果按下ENTER键或单击按钮,则调用一个函数,该函数在提交表单之前执行所有您希望执行的操作,然后在表单上调用
    submit()


  • 我所能想到的是,在形式中有一些错误,我有很多元素。。。你怎么看?请注意,如果你试图用
    显示器之类的东西来隐藏
    ,那么:无,Chrome将阻止Enter键提交。相反,你必须保持它的“显示”,但是用这样的方式将它置于遗忘状态:
    这是一篇非常古老的文章,但是。。。需要注意的是,如果您在提交输入上定义了name属性
    ,表单将不会在chrome中提交。不知道为什么。但我花了一个小时调试,所以我想我会和大家分享。这从来都不是一件事。现在我突然发现了它,真的很想知道为什么,什么时候,从哪里来的这种行为。
    function reset_pager(){
        byId("p").value = 0;
    }
    function reset_and_subm(){
        byId("p").value = 0;
        document.forms["nav_form_main"].submit();   
    }