AngularJS は、豊富なフォーム入力と検証を提供します。 ng-click を使用して AngularJS クリック ボタン イベントを処理し、$dirty フラグと $invalid フラグを検証に使用できます。 novalidate フォーム宣言を使用して、ブラウザー固有の検証を無効にします。フォーム コントロールは多くの Angular アクティビティを使用します。まずは関連するイベントを簡単に見てみましょう。
イベント
AngularJS は、HTML コントロールに関連付けることができる複数のイベントを提供します。たとえば、ng-click は通常ボタンに関連付けられています。 AngularJS でサポートされているイベントは次のとおりです。
ng-click
フォームはボタンをクリックするコマンドを使用してデータをリセットします。
<input name="firstname" type="text" ng-model="firstName" required> <input name="lastname" type="text" ng-model="lastName" required> <input name="email" type="email" ng-model="email" required> <button ng-click="reset()">Reset</button> <script> function studentController($scope) { $scope.reset = function(){ $scope.firstName = "Mahesh"; $scope.lastName = "Parashar"; $scope.email = "MaheshParashar@yiibai.com"; } $scope.reset(); } </script>
検証データ
以下の追跡エラーを使用できます。
例
次の例は、上記のすべてのコマンドを示しています。
testAngularJS.html
<html> <head> <title>Angular JS Forms</title> <style> table, th , td { border: 1px solid grey; border-collapse: collapse; padding: 5px; } table tr:nth-child(odd) { background-color: #f2f2f2; } table tr:nth-child(even) { background-color: #ffffff; } </style> </head> <body> <h2>AngularJS Sample Application</h2> <div ng-app="" ng-controller="studentController"> <form name="studentForm" novalidate> <table border="0"> <tr><td>Enter first name:</td><td><input name="firstname" type="text" ng-model="firstName" required> <span style="color:red" ng-show="studentForm.firstname.$dirty && studentForm.firstname.$invalid"> <span ng-show="studentForm.firstname.$error.required">First Name is required.</span> </span> </td></tr> <tr><td>Enter last name: </td><td><input name="lastname" type="text" ng-model="lastName" required> <span style="color:red" ng-show="studentForm.lastname.$dirty && studentForm.lastname.$invalid"> <span ng-show="studentForm.lastname.$error.required">Last Name is required.</span> </span> </td></tr> <tr><td>Email: </td><td><input name="email" type="email" ng-model="email" length="100" required> <span style="color:red" ng-show="studentForm.email.$dirty && studentForm.email.$invalid"> <span ng-show="studentForm.email.$error.required">Email is required.</span> <span ng-show="studentForm.email.$error.email">Invalid email address.</span> </span> </td></tr> <tr><td><button ng-click="reset()">Reset</button></td><td><button ng-disabled="studentForm.firstname.$dirty && studentForm.firstname.$invalid || studentForm.lastname.$dirty && studentForm.lastname.$invalid || studentForm.email.$dirty && studentForm.email.$invalid" ng-click="submit()">Submit</button></td></tr> </table> </form> </div> <script> function studentController($scope) { $scope.reset = function(){ $scope.firstName = "Mahesh"; $scope.lastName = "Parashar"; $scope.email = "MaheshParashar@yiibai.com"; } $scope.reset(); } </script> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> </body> </html>
出力
Web ブラウザで textAngularJS.html を開きます。以下の結果をご覧ください。