Czy można przesłać formularz, który nie ma przycisku przesyłania (naciskając klawisz Enter) przykład:
<form [ngFormModel]="xxx" (ngSubmit)="xxxx()">
<input [(ngModel)]="lxxR" ngControl="xxxxx"/>
</form
być może dodasz keypress
lub keydown
do pól wejściowych i przypiszesz zdarzenie do funkcji, która wykona przesłanie po kliknięciu Enter
Twój szablon wyglądałby tak
<form (keydown)="keyDownFunction($event)">
<input type="text" />
</form
A ty funkcjonujesz w klasie, która wyglądałaby tak
keyDownFunction(event) {
if (event.keyCode === 13) {
alert('you just pressed the enter key');
// rest of your code
}
}
Edytować:
Aby skorzystać z tej metody, musisz mieć przycisk przesyłania, nawet jeśli nie jest wyświetlany „Dziękujemy za odpowiedź Toolkit ”
Stara odpowiedź:
Tak, dokładnie tak, jak to napisałeś, z wyjątkiem tego, że nazwa wydarzenia to(submit)
zamiast(ngSubmit)
:źródło
Wolę,
(keydown.enter)="mySubmit()"
ponieważ nie zostanie dodany podział wiersza, jeśli kursor znajdował się gdzieś w środku,<textarea>
ale nie na jego końcu.źródło
Ten sposób jest o wiele prosty ...
źródło
Aby uniknąć opóźnień, zawsze używaj keydown.enter zamiast keyup.enter.
i działają wewnątrz component.ts
źródło
dodaj to wewnątrz swojego tagu wejściowego
źródło
powinno to działać i zostało już wspomniane w wielu odpowiedziach, jednak powinno znajdować się na tagu formularza, a nie na przycisku.
źródło
dodanie niewidocznego przycisku przesyłania załatwia sprawę
<input type="submit" style="display: none;">
źródło
Po prostu dodaj
(keyup.enter)="yourFunction()"
źródło
Mam nadzieję, że może to komuś pomóc: z jakiegoś powodu nie mogłem śledzić z powodu braku czasu, jeśli masz formę taką jak:
po
Enter
naciśnięciu przyciskuclearForm
funkcja jest wywoływana, mimo że oczekiwanym zachowaniem było wywołaniedoSubmit
funkcji. ZmianaClear
przycisku na<a>
tag rozwiązała problem. Nadal chciałbym wiedzieć, czy jest to oczekiwane, czy nie. Wydaje mi się to zagmatwaneźródło
Jeśli chcesz uwzględnić oba prostsze niż to, co widziałem tutaj, możesz to zrobić, po prostu umieszczając przycisk w formularzu.
Przykład z funkcją wysyłającą wiadomość:
Możesz wybrać pomiędzy kliknięciem przycisku lub naciśnięciem klawisza Enter.
źródło
Jeśli chcesz uwzględnić oba - zaakceptuj po wejściu i zaakceptuj po kliknięciu, a następnie zrób -
źródło