Chrome需要按两次“Enter”才能提交表单

时间:2011-03-30 05:37:44

标签: javascript google-chrome

问题摘要:Chrome需要在提交表单前两次点击“Enter”。

血淋淋的细节: 我有一张表格。它的行动是:

action="javascript: Search();"

我的表单中有一个文本输入。我在这个文本框中输入了一些内容。我按回车键。调用Search()。

Search()调用:

alert('A')
doPost(document.formName,'Search.php')
alert('B')

doPost(form,url)调用:

form.action=url
alert('C')
form.submit()
alert('D')

现在,问题。 FF弹出'A',然后'C',然后提交表格(耶!)。另一方面,Chrome弹出“A”,然后是“C”,然后是“D”,然后是“B”,但没有表单提交(Boo!)。然后,沮丧地,我在Chrome中再次点击“Enter”。 form.submit()被成功调用(没有任何弹出窗口)。

为什么Chrome首次尝试时未提交表单?

2 个答案:

答案 0 :(得分:2)

确切地确定您的问题,但我怀疑您的代码应该重构为更标准的设置。

你的表格应该是......

<form action="Search.php" method="POST">
     <input type="text" /> 
     <!-- Blah blah whatever else is in here -->
     <input type="submit" />
</form>

为什么javascript会全部参与?


仅供参考:这可能与您的问题有关。来自jQuery Submit doc

  

根据浏览器的不同,如果表单只有一个文本字段,或者只有存在提交按钮时,Enter键才会导致表单提交。除非通过观察按下Enter键的按键事件来强制解决问题,否则界面不应该依赖于此键的特定行为。

答案 1 :(得分:1)

你应该用分号结束每个javascript语句;

您没有使用任何分号来结束陈述。