javascript - 如何在表单提交时防止表单在刷新时重新提交
问题描述
我正在使用 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>
解决方案
您可以在按下按钮后禁用该按钮,但这不会让用户表单“刷新”页面并重新提交值。
就我而言,我在执行此操作时会执行“工作或提交”图标,但您必须在服务器端进行验证。这只会让用户知道,页面正在处理某些事情,然后再点击刷新。
推荐阅读
- api - 如何处理来自 API 请求的错误 Flutter
- amazon-cognito - 需要 AWS Cognito SAML 签名
- r - 使用解析文本 R 重命名数据框
- sql - 如何在 Postgres SQL 中查找连续的日期
- swift - UIGraphicsImageRenderer 没有在循环中返回图像
- javascript - 在 Google App Script 中根据条件禁用按钮
- jpa - 使用 JPA + MySQL 进行货币操作的正确方法是什么?
- javascript - 无法使用我的数组项使用 JQuery 预填充我的表单输入
- javascript - VUEJS 提交事件未在按钮单击时触发
- flutter - 如何在此应用的 Appbar 中添加搜索选项?