送信時に招待状を生成するフォームを作成しています。招待状にはいくつかのフィールドがあり、そのうちの 1 つは [追加] ボタンに入力された電子メール アドレスで、クリックすると招待状を受信する電子メール アドレスのリストにそのアドレスが追加されます。
これは単一のフォームで実行できますが、ユーザーが電子メールを入力中に Enter キーを押すと、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>
いずれかを送信しても機能しなくなります。