Ich habe eine form
mit nur radio
Tasten, muss die form
vor der Einreichung überprüft werden (Benutzer muss etwas auswählen). Nachdem der Benutzer eine Optionsschaltfläche ausgewählt hat, sollte ein Styling unter Verwendung von ngclass
gelten. Ich habe zwei Probleme:
1. Aus irgendeinem Grund ist die letzte Option standardmäßig ausgewählt.
2. Ich bin nicht in der Lage, Formularvalidierungsattribute zu erhalten. Die Daten werden nicht aktualisiert, wenn ich Sachen darauf auswähle.Angular - nicht validieren Form von Radio-Tasten
JS:
app.controller('MainCtrl', function($scope) {
$scope.questionObject = [{
"body": "abc"
}, {
"body": "def"
}, {
"body": "aghi"
} ]
$scope.selectAnswer=function(number,obj)
{
$scope.isChecked=number;
}
});
HTML:
<div class="form-group" ng-form="form">
<div class="col-lg-8 col-lg-offset-2 col-sm-12">
<div class="row" ng-repeat="obj in questionObject track by $index">
<div class="radio">
<label class="choice" ng-class="{'choiceSelected': isChecked==$index}">
<input type="radio"
name="optradio"
ng-click="selectAnswer($index,questionObject.correct_answer)"
ng-model="radioInput">{{obj.body}}
</label>
</div>
</div>
</div>
</div>
<pre>
dirty:{{form.$dirty}}
pristine:{{form.$pristine}}
</pre>
EDIT Dies ist die Form ausgegeben. Wird nie aktualisiert
{
"$error": {},
"$name": "form",
"$dirty": false,
"$pristine": true,
"$valid": true,
"$invalid": false,
"$submitted": false
}
Dies scheint nur '$ invalid' Status zu ändern, wenn der Benutzer auf der * letzten * Option klickt. Aber abgesehen davon ändert sich '$ pristine' bei der ersten Auswahl. – undroid
@undroid hat den Plunker aktualisiert und antwortet, um den gültigen und ungültigen Status des Formulars anzuzeigen. Lassen Sie es mich wissen, falls Sie Fragen haben. – Deep
Ja, jetzt funktioniert dein Beispiel. Ich kann das nicht auf meiner Seite machen, muss tiefer graben. Möchten Sie die Logik hinter Ihrer 'ng-Modell' Manipulation erklären? – undroid