Ich arbeite an einem dynamischen Formular mit angular.js. Eingänge FeldLegen Sie das erforderliche Attribut für ein Eingabeelement fest, wenn es nicht ausgeblendet ist.
<div ng-show="condition()">
<input type="text" name="field" required>
</div>
Ist die Bedingung() false zurückgibt, wird das Eingabefeld nicht angezeigt. Aber auf einem Submit-Button klicken, werde ich auf Chrom erhalten, erscheint die Meldung:
An invalid form control with name='field' is not focusable.
Nun, eine Lösung ist, ng-erforderlich zu verwenden:
<div ng-show="condition()">
<input type="text" name="field" ng-required="condition()">
</div>
Nun, ich habe hier Code wiederholen, indem Sie mehrmals die Bedingung() verwenden.
Es wird schlecht, wenn man ng-Show verkapselt:
<div ng-show="condition1()">
<div ng-show="condition2()">
<input type="text" name="field"
ng-required="condition1() && condition2()">
</div>
</div>
Gibt es eine bessere Art und Weise, den erforderlichen Tag soll es sein, wenn der Eingang sichtbar ist, und nicht, wenn es versteckt ist.
mit ng-wenn anstelle von ng-Show bekommen, ist, dass die Lösung. siehe oben – Artisan72
@ Artisan72 hast du die Zeit überprüft ..wenn ich Antwort..exactly 3 Minuten früher als du hinzugefügt hast –