送信ボタンのng-disabledディレクティブの追加チェックを追加すると、次のコード(W3Schoolsから取得)が機能しません。 "myForm.email。$ untouched"も使用したいので、誰かがすぐにページに行き、フィールドが空の場合は送信ボタンが無効になります。しかし、私がそれを追加すると、どこかをクリックしなければならず、ボタンが有効になるだけです。 (どこかにクリックする必要があります)AngularJSフォームの検証が期待通りに機能しない
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>
<h2>Validation Example</h2>
<form ng-app="myApp" ng-controller="validateCtrl" name="myForm" novalidate>
<p>Email:
<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">Email is required.</span>
<span ng-show="myForm.email.$error.email">Invalid email address.</span>
</span>
</p>
<p>
<button ng-disabled="myForm.email.$dirty && myForm.email.$invalid">Absenden</button>
</p>
</form>
<script>
var app = angular.module('myApp', []);
app.controller('validateCtrl', function($scope) {
$scope.user = 'John Doe';
$scope.email = '';
});
</script>
</body>
</html>
はこれにコードを変更したいが、それは働いていない:
<p>
<button
ng-disabled="myForm.email.$untouched || myForm.email.$dirty && myForm.email.$invalid">Absenden</button>
</p>
「$手作りなし」の代わりに$ pristine'を使用してください – akinjide