当前位置: 首页 > 面试题库 >

单击一次后如何禁用提交按钮以防止在Angularjs中进行多次提交?

贝自怡
2023-03-14
问题内容

我在网上浏览了很多,其中包括几个堆栈溢出示例,以解决该问题。具体来说,我尝试了以下方法:

var disableButton = function() {

  document.getElementById('<%= btnSubmit.ClientID %>').disabled = true;

}



$scope.isDisabled = false;

var someFunc = function() {

  $scope.isDisabled = true;

}


<button OnClientClick="disableButton()" type="submit">Submit</button>

<button ng-disabled="isDisabled" type="submit">Submit</button>

两者都不如广告中所述。还有其他建议吗?请仅提供角度建议。谢谢。


问题答案:

您非常接近答案。您唯一错过的是使用调用someFunc()按钮上的函数ng-click

另一个问题是,控制器中的功能应该是,$scope.someFunc()而不是var someFunc()

工作示例: index.html应该类似于:

<html>

  <head>
    <script data-require="angular.js@1.3.15" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
    <script src="application.js"></script>
  </head>

  <body ng-app="demo" ng-controller="demoController">
          <button type="submit" ng-disabled="isDisabled" ng-click="disableButton()"> Click me to disable myself</button>
  </body>

</html>

您的控制器application.js就像:

angular.module('demo', [])
    .controller('demoController',function($scope){

    $scope.isDisabled = false;

    $scope.disableButton = function() {
        $scope.isDisabled = true;
    }

    });


 类似资料:
  • 问题内容: 提交表单时,我正在使用jquery $ .post。我想在单击按钮后禁用按钮约5秒钟,以避免多次提交表单。 这是我现在所做的: 我之前使用了fadeIn和fadeOut,但是当我快速测试单击按钮时仍然无法正常工作。我应该怎么做才能实现自己想实现的目标? 问题答案: 您可以这样操作: 或者您可以使用ajax收到响应后正在执行的jQuery 方法: 编辑: 这是一个 3秒钟服务器端响应延迟

  • 问题内容: 在下一页中,使用Firefox的“删除”按钮提交表单,但“添加”按钮不提交。如何防止“删除”按钮提交表单? 问题答案: 你正在使用HTML5按钮元素。请记住,原因是此按钮具有默认的提交行为,如W3规范所述,如此处所示: W3C HTML5按钮 因此,你需要明确指定其类型: 为了覆盖默认的提交类型。我只想指出发生这种情况的原因=)

  • 问题内容: 我有2页: page1.php: -具有带文本框和“提交”按钮的表单。例如: -用于将文本框的值存储到数据库的php和mysql代码。将值提交到数据库后,JavaScript会将页面重定向到。例如: page2.php -mysql从数据库检索数据并显示在此页面上。 问题: 当我按“后退”按钮时,浏览器将弹出警告消息,提示您将重新提交表单。单击“返回”按钮时如何防止重新提交表单?我是否

  • 问题内容: 我想防止使用angular.js提交多个表单。 当用户单击表单提交按钮时,提交按钮的值/标签应更改为“正在加载..”,按钮的状态将设置为“已禁用”,并且应以正常方式触发提交事件,从而导致向服务器提交呼叫。这样,用户将看到以下效果: 立即:提交按钮的值更改为“正在加载..”并被禁用 服务器响应后:向用户显示服务器请求的结果(而服务器响应的处理无需任何干预) 我制作了这个小玩意来表达我的意

  • 本文向大家介绍在PHP中提交表单时如何防止多次插入?,包括了在PHP中提交表单时如何防止多次插入?的使用技巧和注意事项,需要的朋友参考一下 提交表单时,PHP会话可用于防止多次插入。PHP会话设置一个会话变量(例如$ _SESSION ['posttimer']),该变量设置POST上的当前时间戳。在PHP中处理表单之前,请检查$_SESSION ['posttimer']变量是否存在,并检查特定

  • 这就是我的表单的样子: 如果用户快速按下提交按钮10次,表单也将提交10次。我尝试将添加到submit按钮和下面的脚本中,但这并不能起到任何作用: 有什么解决方法吗?