required
とng-required
(フォーム検証)の違いは何ですか?
3 に答える
AngularJS フォーム要素は、属性を探してrequired
検証機能を実行します。ブール値テストに応じて属性ng-required
を設定できます(たとえば、フィールド B のみが必要 -たとえば、学生番号- フィールド A に特定の値がある場合 -選択肢として「学生」を選択した場合)required
例として、<input required>
と<input ng-required="true">
は本質的に同じものです
なぜこれがこのようになっているのか疑問に思っている場合(make<input required="true">
またはだけでなく<input required="false">
)、それは HTML の制限によるものです -required
属性には関連付けられた値がありません - その単なる存在は (HTML 標準に従って) 要素が必要であることを意味します -そのため、angularには必要な値を設定/設定解除する方法が必要です(required="false"
無効なHTMLになります)
ティアゴの答えのアドオンを作りたいです:
属性を使用して要素を非表示にし、同じ属性ng-show
を追加するとします。required
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
次のようなエラーがスローされます。
name='' の無効なフォーム コントロールはフォーカス可能ではありません
これは、要素required
に検証を課すことができないためです。hidden
を使用すると、必要な検証ng-required
を条件付きで簡単に適用できます。
HTML 属性 は、required="required"
フォームを有効にするためにこのフィールドが必要であることをブラウザーに伝えるステートメントです。(required="required"
は XHTML フォームです。使用するだけrequired
で同等です)
Angular 属性 ng-required="yourCondition"
は「isRequired(yourCondition)」を意味し、条件に応じて動的に HTML 属性を設定します。
また、HTML バージョンは紛らわしいことに注意してください。 orのような条件付きのものを記述することはできません。属性の存在のみが重要です (present は true を意味します) ! これはAngularがあなたを助けるところです.required="true"
required="false"
ng-required