一尘不染

防止使用angular.js提交多个表单-禁用表单按钮

angularjs

我想防止使用angular.js提交多个表单。

当用户单击表单提交按钮时,提交按钮的值/标签应更改为“正在加载..”,按钮的状态将设置为“已禁用”,并且应以正常方式触发提交事件,从而导致向服务器提交呼叫。这样,用户将看到以下效果:

  1. 立即:提交按钮的值更改为“正在加载..”并被禁用

  2. 服务器响应后:向用户显示服务器请求的结果(而服务器响应的处理无需任何干预)

我制作了这个小玩意来表达我的意思。我的问题与此行有关:elm.attr('disabled',true);。这不仅会禁用按钮,而且还会阻止传播Submit事件。因此,我得到了一个禁用的按钮(期望的结果),但是表单没有被提交(期望的结果)。

如果您对此行发表评论/取消评论,则可以看到行为的变化: elm.attr('disabled',true);

知道如何更改吗?


阅读 225

收藏
2020-07-04

共1个答案

一尘不染

尝试$ timeout(angularjs函数)

$timeout(function(){
    elm.attr('disabled',true);
}, 0)
2020-07-04