2015-11-03 65 views
0

我想保持我的提交按钮disabled直到形式是HTML有效,我已经成功地做到像这样:AngularJS:提交禁止,直到HTML 5的有效和禁止提交后防止多提交

<button type="submit" class="btn" ng-disabled="mainPaymentForm" ng-click="disableButton()"><%button%></button> 

在我控制器我有这样的:

// Disable form on submit 
$scope.disableButton = function(){ 
     $scope.button = "Loading..."; 
     $scope.submit.disable = true; // This doesn't work 
}; 

总的来说,我只是想保持按钮禁用,直到有效/和防止多重提交点击一次有效。

感谢

回答

1

我想通了:

HTML代码

ng-disabled="mainPaymentForm.$invalid || clickDisable"

JS控制器代码

// this will unable button if form becomes valid 
$scope.$watch('mainPaymentForm.$invalid', function(){ 
     $scope.clickDisable = false; 
}); 

// this will disable it on click 
$scope.disableButton = function(){ 
     $scope.button = "Loading..."; 
     $scope.clickDisable = true; 
};