繁体   English   中英

“输入密钥”不会在Firefox中提交表单,但在Chrome中,为什么?

[英]'Enter key' wont submit form in Firefox, but will in Chrome, why?

我有一个非常基本的表单,当我按下回车键时,在Firefox中没有任何反应,但在Google Chrome中它提交了。 尚未尝试过其他浏览器......

点击进入Firefox时没有任何事情发生。

单击提交按钮时,它在两个浏览器中都能正常工作。

表单在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>

这是js:

function reset_pager(){
    byId("p").value = 0;
}
function reset_and_subm(){
    byId("p").value = 0;
    document.forms["nav_form_main"].submit();   
}

根本没有调用reset_pager函数......这很奇怪,因为它是一个“onsubmit”函数。 所以就像表格根本没有提交一样。 但是,目标iframe中的结果显示正常,没有任何问题。

有任何想法吗?

谢谢

只有在表单上存在<input type="submit>时才会触发Enter for submit。您可以为此添加一个隐藏的,但请记住它将提交表单并绕过您要捕获的onclick事件你需要修补表单的onsubmit动作来运行你的功能。

正如Diodeus所提到的,如果要使用ENTER键提交表单,则表单中需要<input type="submit">标记。

您的reset_pager函数未在onsubmit事件上触发的原因是因为永远不会触发onsubmit事件。 虽然这有点违反直觉,但在表单上使用submit()方法(就像你在reset_and_subm函数中所做的reset_and_subm )不会导致触发onsubmit事件。

你有几个选择:

  1. 您可以在表单中添加<input type="submit"> ,并将所有逻辑放在onsubmit回调函数中。

  2. 观看表单上的所有keypress事件。 如果按下ENTER键或单击该按钮,则在提交表单之前调用一个能完成所有事情的函数,然后在表单上调用submit()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM