<button type="submit"> onclick 提交两次?

Posted

技术标签:

【中文标题】<button type="submit"> onclick 提交两次?【英文标题】:<button type="submit"> with onclick submitting twice? 【发布时间】:2013-11-16 08:04:33 【问题描述】:

我目前面临一些订单重复问题。没有过多的细节,我有一个关于以下问题的问题。有没有可能触发两次提交?

&lt;button type="submit" onclick="review.save()"&gt;&lt;/button&gt;

review.save() 将处理表单的提交 - 所以实际上这里不需要 type=submit。但我想确定这是否会导致浏览器提交两次。在服务器日志上,2 次提交相隔大约 10 秒。

【问题讨论】:

浏览器不提交twiche。单击按钮时,它会提交。您的函数调用 review.save() 所做的是在另一个页面上... ;) 不耐烦的用户可能会点击两次?禁用按钮是个好主意,这样用户就不能点击两次。 【参考方案1】:

您需要阻止默认浏览器行为,例如:

<button type="submit" onclick="review.save(); return false;"></button>

【讨论】:

或者&lt;button type="button" onclick="review.save()"&gt;?但是您能确认原始代码是实际原因吗? @FrancisKim:是的,您发布的代码也应该足够了,因为您在review.save 中提交了表单。当单击按钮并且您的 review.save() 正在执行另一个提交时,提交按钮会导致提交操作。 这个fiddle 可能会有所帮助。第一个和第三个按钮只执行点击操作,而第二个按钮执行点击操作以及提交。【参考方案2】:

return false 添加到您的按钮或更好的“oncklick”事件!

喜欢:

<button type="submit" onclick="review.save();return false;"></button>

它“停止”跟随链接的默认浏览器行为(在这种情况下)。

编辑:放慢速度:/

【讨论】:

以上是关于<button type="submit"> onclick 提交两次?的主要内容,如果未能解决你的问题,请参考以下文章

<input type="button" /> 和 <button> 有啥区别? [复制]

使用 <input type ="button"> 提交表单

在button中添加 type="button"和不添加的区别

我可以使用 <input type="button" /> 提交表单值吗?

前端button按钮点击会自动刷新页面

<Input type="button>,我怎么知道它们啥时候激活?[重复]