我正在处理遗留应用程序,他们使用[a]标签为许多Ajax表单“提交”.
如果我们使用[input]按钮,我们可以设置[input]标签的disable属性.
但是在超链接上,禁用不是规范的一部分,并且不是一致的跨浏览器.
如果我们使用[input]按钮,我们可以设置[input]标签的disable属性.
但是在超链接上,禁用不是规范的一部分,并且不是一致的跨浏览器.
我们正在寻找一种简单的解决方案来阻止超链接上的额外点击.
注意:我们在jQuery中使用JavaScript
解决方法
womp的解决方案是一个非常彻底的解决方案.
但是,如果你想要一些更简单的东西,我可能会实现一个semaphore.只需设置一个“提交”标志,并测试是否在用户点击链接时设置了信号量.您可以通过在DOM对象本身上设置标志或使用全局布尔值来完成此操作.
$('#link').each(function() {
this.submitting = false;
}).click(function() {
if (!this.submitting)
{
this.submitting = true;
var self = this;
$.ajax({
success: function() {
self.submitting = false;
},error: function() {
self.submitting = false; // make sure they can try again
}
});
}
});
我显然缩短了$.ajax电话,但我认为你明白了.
编辑:呃……实际上,忘记了最重要的部分. if(!提交).