Я создаю форму, которая генерирует приглашение при отправке. В приглашении есть несколько полей, один из которых представляет собой адрес электронной почты с кнопкой "добавить", который при нажатии должен добавить этот адрес в список адресов электронной почты, которые должны получить приглашение.
Это можно сделать с помощью одной формы, однако, если пользователь нажимает клавишу ввода во время ввода сообщения электронной почты, он вызывает submit
на всей форме. Я хотел бы получить результат ввода ключа - когда поле ввода электронной почты сфокусировано - имеет тот же эффект, что и нажатие кнопки "добавить". Я ожидал, что правильным способом решить эту проблему будет вложение формы ввода электронной почты в форму приглашения, примерно так:
<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>
С помощью следующего javascript в контроллере:
$scope.addInvitee = function() {
$scope.invitation.emails.push($scope.inviteeEmail);
$scope.inviteeEmail = '';
}
$scope.sendInvite = function() {
//code to send out the invitation
}
Моя проблема заключается в том, что вложенные формы (и при этом преобразованные из <form>
в <ng-form>
, отправка одного из них больше не работает.