Mit einer einfachen Form:Angular 1.5 Form Validation - wie die mehr Eingaben zu validieren sind alle leer oder voll
<form name="simpleForm">
<input ng-model= "profile.cat" name="cat">
<input ng-model= "profile.dog" name="dog">
<input ng-model= "profile.mouse" name="mouse">
</form>
Was ist die einfachste Art und Weise zu überprüfen, dass alle drei Eingänge wurden leer gefüllt oder links? Mit anderen Worten, das Formular ist nur gültig, wenn alle drei Eingänge gefüllt sind oder alle drei Eingänge leer sind. Ich habe mehrere Versuche einer benutzerdefinierten Validator gemacht, die alle entlang der Linien von einer Richtlinie innerhalb eines oder mehrerer der drei Eingänge setzen, wie:
<input ng-model= "profile.cat" name="cat" all-empty-all-full >
benutzerdefinierten Validator:
function allEmptyAllFull() {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
// nothing I put in here does the job!
}
}
}
angular
.module('app')
.directive('allEmptyAllFull', allEmptyAllFull);
Ich habe versucht, eine ngModel. $ validators.allEmptyAllFull-Funktion innerhalb der Link-Funktion, aber ich kann nicht auf die anderen beiden Eingänge im Inneren zugreifen. Ich habe anderen Code gesehen, bei dem Leute ein benutzerdefiniertes Attribut in die Formulareingabe "Vergleich" eingeben, aber das hat mich in diesem Fall nirgendwo hingebracht. Jede Hilfe wird sehr geschätzt.
EDIT: meine ursprüngliche Frage wurde schlecht formuliert, sorry. Ich möchte nicht, dass eine der Eingaben unabhängig benötigt wird, aber wenn jemand einen Text in einen von ihnen eingibt, müssen die anderen beiden ausgefüllt werden. Alles oder nichts.
können Sie Controller einchecken. Siehe http://stackoverflow.com/questions/20054055/angularjs-check-if-form-is-valid-in-controller –