单击一次后如何禁用DIV“像提交按钮一样”?

时间:2013-06-03 17:47:47

标签: jquery disabled-control disabled-input

我有一个像提交按钮一样工作的div,所以当用户点击它时,它会提交一个表单并向服务器发送一个ajax请求。我遇到的问题是,如果用户单击按钮twise,它会创建重复,即使它是一个AJAX请求。所以我要做的就是禁用并重新命名,“请等待......”直到请求完成。防止双重提交。

所以我的问题是如何在点击后使用jQuery重命名并禁用“灰显”div?

由于

2 个答案:

答案 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)

您可以使用几种方法:

  • 隐藏您提交的#39; div和显示不同,请等待......' div代替它
  • 单击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,从而允许稍后重新提交表单(如果需要)。