第n次单击后禁用AJAX按钮

时间:2015-04-13 20:05:45

标签: javascript jquery ajax

鉴于我的模型Post最多可以有 n Comments(数字由后端控制),我有一个允许添加的视图通过AJAX请求Comment。在 nth 请求中告诉视图禁用Add-Comment-Form的最佳方法是什么?

第n个请求是成功的,因此状态代码应该仍然是200/201,但后端已经"知道" nth + 1 调用将使Post无效,所以我想以某种方式告诉视图,以便它可以在用户遇到上的(捕获)错误之前采取行动nth + 1 提交。

到现在为止后端渲染html然后简单地附加到DOM中的div,使用JSON我可能会添加一个额外的字段,但之后会再次将模板移动到视图中。

如果有人想要一个优雅的解决方案?

3 个答案:

答案 0 :(得分:1)

只需隐藏“添加评论”按钮,当它为“nth + 1”时。或者从按钮中删除eventListener并将标题更改为smth,例如“您已达到最大评论”。

答案 1 :(得分:1)

跟踪点击次数。点击 n 后,您可以将按钮的disabled属性更改为true

$(".myButton").attr("disabled",true);

答案 2 :(得分:1)

尝试让您的服务器呈现javascript值以进行评论计数和最大评论。然后,您可以增加成功函数中的计数值,也可以渲染html注释。

这样的东西
 var commentCount = *value from server*;
 var maxComments =*value from server*;

 $('#mybutton').click(function(){
     $.ajax({
             // your code here 
     })
    . success(function (response) {
             // process response
             commentCount ++;
             if( commentCount >= maxComments) 
                  $('#mybutton). prop('disabled', true);
     });