You can in-fact do a whole lot of things with this directive. You can apply ng-disabled on many AngularJS form elements, such as an <input> field, it also applies on a <select> and <textarea> element. However, I just wanted to disable my submit button once clicked and later enable it.
Syntax
<input ng-disabled="expression"></input>
You can learn more about it in this doc.
Here is the example.
<!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> </head> <body> <div ng-app="myApp" ng-controller="myController"> <button type="submit" ng-disabled="isDisabled" ng-click="save()">Submit Your Data</button> </div> </body>
I have a button with type submit. I have applied two directives to the element, that is, the ng-disabled directive with the value isDisabled and an ng-click directive to call the function save().
Note: The value or expression “isDisabled” can be any other value. For example,
ng-disabled = "disableSubmit"
All you have to do is assign a Boolean true or false to it. That is,
$scope.disableSubmit = true;
<script> var myApp = angular.module('myApp', []); myApp.controller('myController', function ($scope) { // THIS IS DEFAULT. IF YOU DO NOT DEFINE IT, IT REMAINS 'false'. $scope.isDisabled = false; $scope.save = function () { console.log('Data Saved.'); $scope.isDisabled = true; }; }); </script> </html>
When the page first loads, the button remains enabled. I have set its value as false. Remember, this is its default behavior that is even if you do set it false explicitly, it will remain false. However, when a user clicks the submit button, it calls the save() function and here I have set the value as true. This will disable the button and prevent it from being clicked again, until you explicitly set the value as false to enable it.
Try it Yourself
That's it. Thanks for reading. ☺