javascript - 如何在 javascript 中等待服务器响应时禁用表单提交?
问题描述
我有一个表格
<form method="POST" id="form1" action"<%=login%>">
<input id="btn" type="submit" value="Log in" />
其中 %=login% 是调用 java 代码的 jsp 页面。
我注意到,如果我在登录时按住 Enter 按钮或多次按下该按钮,它会不断为用户创建新的会话和请求。在等待服务器响应时,禁用持续按下按钮的最佳方法是什么?
谢谢
解决方案
我会用 AJAX 请求调用 JSP 页面。要防止页面重新加载,请将 EventListener 添加到您的表单中:
document.getElementById("form1").AddEventListener("submit", e => {
e.preventDefault();
document.getElementById("btn").disabled = true;
// AJAX Request
});
如果请求成功或失败,请将按钮的 disabled-attribute 设置为 false。
推荐阅读
- javascript - 防止在 hashchange 事件上跳转到锚点
- regex - 正则表达式用空格替换一个字符
- node.js - React 构建不适用于 axios 代理
- python - 如何从txt文档中提取信息
- python - 我可以在 Python 中使用导出的 AutoML Tables 模型吗?
- swift - 如何将注释从函数添加到我的地图?
- node.js - Twitter 在无头 chrome puppeteer 中被屏蔽
- android - 如何将 state 下的数据导出到另一个文件?(react-native)
- reactjs - 带有 React + Typescript 的样式化组件开发工具
- node.js - 在没有管理员的情况下在 Python Virtualenv 中设置 Node.js