Ich bin ein Formular erstellen, die eine Einladung generiert, wenn sie gesendet wird. Die Einladung hat mehrere Felder, von denen eines eine E-Mail-Adresse ist, die mit einem "Hinzufügen" -Button eingegeben wird. Wenn Sie darauf klicken, sollten Sie diese Adresse zu einer Liste von E-Mail-Adressen hinzufügen, die die Einladung erhalten sollen.AngularJS - Wie Submit in einem geschachtelten Formular ausgelöst wird
Dies kann mit einem einzigen Formular erfolgen. Wenn der Benutzer jedoch beim Eingeben einer E-Mail die Eingabetaste drückt, wird das ganze Formular mit submit
ausgelöst. Ich möchte, dass das Enter-Key-Ergebnis - wenn das E-Mail-Eingabefeld fokussiert ist - denselben Effekt wie das Klicken auf die Schaltfläche "Hinzufügen" hat. Ich erwartete, dass der richtige Weg, dies zu nisten ein E-Mail-Anmeldeformular in der Einladung Form, so etwas wie das wäre zu lösen:
<ng-form ng-submit="sendInvite()">
<input type="text" placeholder="Title" ng-model="invitation.title"/>
<ng-form ng-submit="addInvitee()">
<input type="email" placeholder="Title" ng-model="inviteeEmail"/>
<button class="btn" type="submit">add</button>
</ng-form>
<button class="btn" type="submit">Send</button>
</ng-form>
Mit dem folgende Javascript in der Steuerung:
$scope.addInvitee = function() {
$scope.invitation.emails.push($scope.inviteeEmail);
$scope.inviteeEmail = '';
}
$scope.sendInvite = function() {
//code to send out the invitation
}
Mein Problem ist, dass die Formen <form>
-<ng-form>
(und dabei, so umgewandelt verschachtelt haben Absenden entweder nicht mehr funktioniert.
Validate Form und oder eine Aufforderung zur Verfügung stellen ... „Sie einreichen ....“ eine Chance zu annullieren, wenn sie – charlietfl
Dank nicht fertig sind, das ist sicherlich ein Weg, um Mildern Sie das Problem, aber es ist kein ideales Verhalten. –
könnte auch 'enter' default verhindern, wenn das Feld im Fokus ist. Binden Sie den Key-Handler an das Feld und lösen Sie die Unschärfe bei der Unschärfe. Formulare können nicht verschachtelt werden – charlietfl