html
1<body ng-controller="MyController"> 2 <form name="myForm" novalidate> 3 <input type="text" name="hoge" ng-model="hoge" ng-required="true" ng-change="CheckState()"> 4 <input type="checkbox" name="check1" value="1" ng-model="check1Selected" ng-change="CheckState()"> 5 <input type="checkbox" name="check2" value="1" ng-model="check2Selected" ng-change="CheckState()"> 6 <button type="submit" ng-disabled="myForm.$invalid">送信</button> 7 </form> 8</body>
javascript
1angular.module('myApp', []) 2.controller('MyController', ['$scope', function($scope) { 3 $scope.CheckState = function () { 4 if( !$scope.check1Selected 5 &&!$scope.check2Selected ){ 6 $scope.myForm.$valid = false; 7 } 8 }; 9}]);
やりたいこと:
0. 初期状態ではボタンは使用不可
0. テキストボックスを入力する
0. チェックボックスにチェックを入れる(最低1つ以上にチェックされている状態)
0. ボタンが使用可能になる
現状:
0. 初期状態ではボタンは使用不可
0. テキストボックスを入力する
0. ボタンが使用可能になる(1つもチェックしていない状態)
buttonはformのvalidで使用可否の制御をしていますが、
"$scope.myForm.$valid = false;"でfalseを設定してもbuttonがそれを検知しません。
どのようにすれば正しく制御できますでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/08 12:46