我有一个像提交按钮一样工作的div,所以当用户点击它时,它会提交一个表单并向服务器发送一个ajax请求。我遇到的问题是,如果用户单击按钮twise,它会创建重复,即使它是一个AJAX请求。所以我要做的就是禁用并重新命名,“请等待......”直到请求完成。防止双重提交。
所以我的问题是如何在点击后使用jQuery重命名并禁用“灰显”div?
由于
答案 0 :(得分:2)
使用one:
$('#mydiv').one('click', function(){ // one : only once
$.ajax({ ... });// launch your task
$(this).html('Please wait...') // change the text
.css('background-color','#444'); // and the background color
});
答案 1 :(得分:0)
您可以使用几种方法:
单击div时在div上设置disabled属性,并在提交处理程序中检查该属性
$("div.submit").click(function(e) {
if ($(this).prop("disabled"))
return false;
// any other error checking, setup etc...
$(this).prop("disabled", true);
// submit the request...
});
您还可以使用全局标记或jQuery的.data()函数来标记表单的提交时间,但我建议使用属性方法。请求完成后,您可以将disabled属性设置为false,从而允许稍后重新提交表单(如果需要)。