Checkboxen verwenden und mit AngularJS benötigt
Ich habe versucht, verwenden Sie die html5 - required
Attribut für meine Gruppe von Checkboxen, aber ich finde nicht ein schöner Weg, es zu implementieren, mit ng-form.
Wenn eine checkbox aktiviert ist möchte ich den Wert des input-Elements geschoben werden, um ein array von Werten.
Den Winkel erforderlich validator zu Wachen scheint das ng-Modell im Zusammenhang mit dem input-element, aber wie kann ich mehrere Checkboxen, um das gleiche Modell, und aktualisieren Sie den Wert mit dem Wert des input-Feldes?
Jetzt die Umsetzung ist wie diese Geige.
<div ng-controller="myCtrl">
<ng-form name="myForm">
<span ng-repeat="choice in choices">
<label class="checkbox" for="{{choice.id}}">
<input type="checkbox" required="required" value="{{choice.id}}" ng-click="updateQuestionValue(choice)" ng-model="choice.checked" name="group-one" id="{{choice.id}}" />
{{choice.label}}
</label>
</span>
<input type="submit" value="Send" ng-click="submitSurvey(survey)" ng-disabled="myForm.$invalid" />
</ng-form>
</div>
Den updateQuestionValue-Funktion verarbeitet das hinzufügen oder entfernen von array-Werten, aber jede checkbox hat einen eigenen Modell-und das ist der Grund, warum jede checkbox muss überprüft werden, damit das Formular gültig ist.
Habe ich es auf der Arbeit auf eine Gruppe von radio-buttons, aber Sie funktionieren alle nach dem gleichen Modell, wie das nur einer kann ausgewählt werden.
InformationsquelleAutor der Frage Tryggve | 2012-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, dass der submit-button deaktiviert, wenn keine Wahl ist gewählt, der einfachste Weg ist, um die Länge des Arrays in der ng-disabled-Attribut, ohne das erforderliche Attribut
Hier finden Sie aktualisierte fiddle
Einen anderen Weg, dies zu tun wäre zu prüfen, die array-Länge im ng-required-attribute der Checkboxen
Die zweite Geige
InformationsquelleAutor der Antwort tocallaghan
Ein paar Dinge:
<form>
eher als<ng-form>
.ng-click
und in der formng-submit
. Das macht die Validierung management ein wenig leichter mit angular built-in Validierung (falls Sie das interessieren)<label>
umhüllt Ihre<input>
Sie nicht brauchen, diefor=""
Attribut.Hier ist eine aktualisierte Geige für Sie
Und hier ist der code:
JS
InformationsquelleAutor der Antwort Ben Lesh
Habe ich nur noch einen hidden input mit ng-Modell, das ist das gleiche wie das ng-Modell für die radio-Taste:
InformationsquelleAutor der Antwort Shaz
Warum machen Sie nicht Ihren checkbox Modelle der array
Fiddle: http://jsfiddle.net/thbkA/1/
InformationsquelleAutor der Antwort johans
Siehe die vollständigen Details und demo und andere Verwandte Beispiele
InformationsquelleAutor der Antwort Ali Adravi