首页 > 解决方案 > 如何在表单提交时防止表单在刷新时重新提交

问题描述

我正在使用 nodeJs、handlebars 和 JavaScript 来提交带有 post 操作的表单,但是由于在提交表单时有大量数据要存储在 DB 子中,因此表单提交需要时间,如果有人刷新它会在其中创建重复数据的页面D B。你能告诉我如何防止这种情况发生吗?

我创建了一个按钮来提交表单并使用这样的 Js 提交。

function sumitform() {
  var myform = document.getElementById("myForm");
  myform.submit();
}
<form id="myForm" action="/path/toNodePostApi" method="post">
  <input name="name" value="{{{data}}}">
  <input id="btnsubmit" class="btn" type="button" value="submit" onclick="sumitform()">
</form>

标签: javascripthtmlnode.jshandlebars.js

解决方案


您可以在按下按钮后禁用该按钮,但这不会让用户表单“刷新”页面并重新提交值。

就我而言,我在执行此操作时会执行“工作或提交”图标,但您必须在服务器端进行验证。这只会让用户知道,页面正在处理某些事情,然后再点击刷新。


推荐阅读