Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中等待服务器响应时,如何禁用表单提交?_Javascript_Jsp - Fatal编程技术网

在javascript中等待服务器响应时,如何禁用表单提交?

在javascript中等待服务器响应时,如何禁用表单提交?,javascript,jsp,Javascript,Jsp,我有一张表格 <form method="POST" id="form1" action"<%=login%>"> <input id="btn" type="submit" value="Log in" /> 其中,%=login%是调用java代码的jsp页面 我注意到,如果我在登录时按住enter按钮或多次按下该按钮,它会不断为用

我有一张表格

<form method="POST" id="form1" action"<%=login%>">
<input id="btn" type="submit" value="Log in" />

其中,%=login%是调用java代码的jsp页面

我注意到,如果我在登录时按住enter按钮或多次按下该按钮,它会不断为用户创建新会话和请求。在等待服务器响应时,禁用连续按下按钮的功能的最佳方法是什么


谢谢

如果您多次检测到该操作,则可以阻止该操作

document.querySelector("#form1").addEventListener("submit", function(e) {
  if (this.dataset.active) {
    e.preventDefault;
    return;
  }
  this.dataset.active = 'true';
});

我将使用AJAX请求调用JSP页面。要防止页面重新加载,请向表单中添加EventListener:

document.getElementById("form1").AddEventListener("submit", e => {
    e.preventDefault();
    document.getElementById("btn").disabled = true;
    // AJAX Request
});

如果请求成功或失败,请将按钮的disabled属性设置为false。

是什么阻止您隐藏或禁用按钮?在收到服务器的回复之前,禁用按钮的好方法是什么?我尝试在按钮中添加一个“onclick”函数,在按钮中禁用它,然后提交,但是按钮被禁用,所以它没有提交。