1

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

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

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

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

编辑

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

4

2 回答 2

1

实现这一目标的几种方法:

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

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

于 2013-09-07T16:44:53.087 回答
0

HTML

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

Javascript

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/

于 2013-09-07T16:44:17.800 回答