Javascript ';输入键';不会在Firefox中提交表单,但会在Chrome中提交表单,为什么?
我有一个表单,非常基本,当我按下enter键时,firefox中什么都不会发生,但在google chrome中它会提交。还没有尝试其他浏览器 在firefox中按enter键时,什么也不会发生 单击submit按钮时,它在两种浏览器中都可以正常工作 表单位于DIV中,表单也包含javascript,下面是简化的表单: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
<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();
}