280

requiredng-required(フォーム検証)の違いは何ですか?

4

3 に答える 3

423

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になります)

于 2013-05-20T11:47:38.180 に答える
78

ティアゴの答えのアドオンを作りたいです:

属性を使用して要素を非表示にし、同じ属性ng-showを追加するとします。required

<div ng-show="false">
    <input required name="something" ng-model="name"/>
</div>

次のようなエラーがスローされます。

name='' の無効なフォーム コントロールはフォーカス可能ではありません

これは、要素requiredに検証を課すことができないためです。hiddenを使用すると、必要な検証ng-requiredを条件付きで簡単に適用できます。

于 2014-09-02T13:05:59.350 に答える
17

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

于 2015-12-15T14:13:22.880 に答える