Javascript 第n次单击后禁用AJAX按钮

Javascript 第n次单击后禁用AJAX按钮,javascript,jquery,ajax,Javascript,Jquery,Ajax,假设我有一个模型Post,它最多可以有n条评论(数量由后端控制),并且我有一个视图,允许通过AJAX请求添加评论。在第n次请求禁用添加注释表单时,告诉视图的最佳方式是什么 第n个请求已成功,因此状态代码仍应为200/201,但后端已经“知道”第n+1次调用将使Post无效,因此我想以某种方式告诉视图,以便它可以在用户在第n+1次提交时遇到(捕获的)错误之前采取行动 现在,后端呈现html,然后将其简单地附加到DOM中的一个div,使用JSON,我可能会添加一个额外的字段,但随后会将模板再次移动到

假设我有一个模型
Post
,它最多可以有n条
评论(数量由后端控制),并且我有一个视图,允许通过AJAX请求添加
评论。在第n次请求禁用添加注释表单时,告诉视图的最佳方式是什么

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

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


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

只需通过JavaScript隐藏“添加注释”按钮,此时它将是“n+1”。或者从按钮中删除eventListener并将标题更改为smth,如“You reach max comments”。

只需通过JavaScript隐藏“Add comment”按钮,此时按钮将为“nth+1”。或者从按钮中删除eventListener并将标题更改为smth,如“You reach max comments”。

只需通过JavaScript隐藏“Add comment”按钮,此时按钮将为“nth+1”。或者从按钮中删除eventListener并将标题更改为smth,如“You reach max comments”。

只需通过JavaScript隐藏“Add comment”按钮,此时按钮将为“nth+1”。或者从按钮中删除eventListener并将标题更改为smth,如“You reach max comments”。

记录单击次数。第n次单击后,您可以将按钮的
disabled
属性更改为
true

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

记录点击次数。第n次单击后,您可以将按钮的
disabled
属性更改为
true

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

记录点击次数。第n次单击后,您可以将按钮的
disabled
属性更改为
true

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

记录点击次数。第n次单击后,您可以将按钮的
disabled
属性更改为
true

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

尝试让服务器为注释计数和最大注释呈现javascript值。然后,您可以在success函数中增加计数值,也可以呈现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);
     });

尝试让服务器为注释计数和最大注释呈现javascript值。然后,您可以在success函数中增加计数值,也可以呈现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);
     });

尝试让服务器为注释计数和最大注释呈现javascript值。然后,您可以在success函数中增加计数值,也可以呈现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);
     });

尝试让服务器为注释计数和最大注释呈现javascript值。然后,您可以在success函数中增加计数值,也可以呈现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);
     });


你认为用户会在不重新加载页面的情况下向帖子添加x条评论吗?在这种情况下,您需要轮询服务器以检查是否已达到限制。您需要轮询服务器,甚至检查是否有新的评论OK Post和评论是我真实模型的抽象,这些都是由拥有的用户单独控制的,所以是的,他不必在同一会话中最有可能在中间重新加载,所以你建议通过会话跟踪?你认为用户会在不重新加载页面的情况下向帖子添加x条评论吗?在这种情况下,您需要轮询服务器以检查是否已达到限制。您需要轮询服务器,甚至检查是否有新的评论OK Post和评论是我真实模型的抽象,这些都是由拥有的用户单独控制的,所以是的,他不必在同一会话中最有可能在中间重新加载,所以你建议通过会话跟踪?你认为用户会在不重新加载页面的情况下向帖子添加x条评论吗?在这种情况下,您需要轮询服务器以检查是否已达到限制。您需要轮询服务器,甚至检查是否有新的评论OK Post和评论是我真实模型的抽象,这些都是由拥有的用户单独控制的,所以是的,他不必在同一会话中最有可能在中间重新加载,所以你建议通过会话跟踪?你认为用户会在不重新加载页面的情况下向帖子添加x条评论吗?在这种情况下,您需要轮询服务器以检查是否已达到限制。您需要轮询服务器,甚至检查是否有新的评论OK Post和评论是我真实模型的抽象,这些都是由拥有的用户单独控制的,所以是的,他不必在同一会话中最有可能在中间重新加载,因此,您建议通过会话进行跟踪?当然,我可能会这样做,但这样做不会让人觉得后端在控制这种行为,因为这在视图中也会进行某种程度的编码。您可以将单击次数存储在数据库中作为计数,这样当用户进入页面时,如果进行了
n
单击,则按钮将被禁用。这可能发生在页面加载时。我担心如果用户点击速度非常快,超过数据库更新速度,从而超过
n
点击次数,会发生什么情况。n+1通过后端验证得到正确处理,这将导致错误状态(不需要额外的计数器,因为关联本身提供了所需的信息),但我认为您是对的,我可以在初始渲染时告诉视图n是什么,并让它跟踪它,因此它仍然完全由控制器控制,但通过jsp由视图强制执行。确保我可以这样做,但感觉不到后端在控制此行为,因为这也在视图中进行了某种程度的编码