是否可以在 JavaScript 中禁用 <form> 元素

Is it possible to disable the <form> element in JavaScript?

本文关键字:form 元素 JavaScript 是否      更新时间:2023-09-26

谷歌搜索只产生了如何禁用表单每个元素的结果。

如果我有一个表单,其中绑定了一个调用 AJAX 请求的 onsubmit 事件,如何阻止用户完全提交表单?如果用户提交一次并发出请求,我不希望他们继续提交它以提出更多请求,否则这将使网站陷入困境。

我所知,仅禁用提交按钮没有任何作用 - 您仍然可以在输入文本,电子邮件,密码等中点击"输入",并且表单仍然被提交。

这在任何浏览器中都可以吗?

编辑

如果 AJAX 请求出现错误并且已完成,我想再次重新启用表单以进行提交。

实现此目的的几种方法:

1)您可以保留一个变量来检测用户之前是否提交了表单(只需确保在服务器上运行类似的验证即可)。然后只需检查变量 OnSubmit() 并处理它或返回 false。

2)从页面中删除表单标签 - 不是很优雅,但应该可以解决问题。

HTML

<form id="my-form"></form>

爪哇语

var submitted = false;
var form = document.getElementById("my-form");
form.onsubmit = function(){
   if(!submitted){
       submitted = false;
       //some ajax function
   }
   return false;
}

JS小提琴:http://jsfiddle.net/rudaf/