[英]'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
事件。
你有几个选择:
您可以在表单中添加<input type="submit">
,并将所有逻辑放在onsubmit
回调函数中。
观看表单上的所有keypress
事件。 如果按下ENTER键或单击该按钮,则在提交表单之前调用一个能完成所有事情的函数,然后在表单上调用submit()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.