Ist es möglich, ein Formular ohne Senden-Schaltfläche (durch Drücken der Eingabetaste) zu senden? Beispiel:
<form [ngFormModel]="xxx" (ngSubmit)="xxxx()">
<input [(ngModel)]="lxxR" ngControl="xxxxx"/>
</form
Vielleicht fügen Sie keypress
oder keydown
zu den Eingabefeldern hinzu und weisen das Ereignis der Funktion zu, die das Senden durch Klicken auf die Eingabetaste ausführt
Ihre Vorlage würde so aussehen
<form (keydown)="keyDownFunction($event)">
<input type="text" />
</form
Und Sie funktionieren innerhalb Ihrer Klasse würde so aussehen
keyDownFunction(event) {
if (event.keyCode === 13) {
alert('you just pressed the enter key');
// rest of your code
}
}
Bearbeiten:
Um diese Methode verwenden zu können, benötigen Sie eine Senden-Schaltfläche, auch wenn nicht "Danke für die Antwort von Toolkit " angezeigt wird.
Alte Antwort:
Ja, genau so, wie Sie es geschrieben haben, außer dass der Ereignisname(submit)
anstelle von(ngSubmit)
:quelle
Ich bevorzuge,
(keydown.enter)="mySubmit()"
weil kein Zeilenumbruch hinzugefügt wird, wenn sich der Cursor irgendwo innerhalb von a befindet,<textarea>
aber nicht am Ende.quelle
Dieser Weg ist sehr einfach ...
quelle
Verwenden Sie immer keydown.enter anstelle von keyup.enter, um Verzögerungen zu vermeiden.
und Funktion innerhalb der Komponente.ts
quelle
Fügen Sie dies in Ihr Eingabe-Tag ein
quelle
Das Hinzufügen einer unsichtbaren Schaltfläche zum Senden reicht aus
<input type="submit" style="display: none;">
quelle
Einfach hinzufügen
(keyup.enter)="yourFunction()"
quelle
Dies sollte funktionieren und bereits in vielen Antworten erwähnt, sollte jedoch auf dem Formular-Tag und nicht auf der Schaltfläche vorhanden sein.
quelle
Hoffentlich kann dies jemandem helfen: Aus irgendeinem Grund konnte ich aus Zeitmangel nicht nachverfolgen, wenn Sie ein Formular wie das folgende haben:
Wenn Sie die
Enter
Taste drücken, wird dieclearForm
Funktion aufgerufen, obwohl das erwartete Verhalten darin bestand, diedoSubmit
Funktion aufzurufen . Das Ändern derClear
Schaltfläche in ein<a>
Tag hat das Problem für mich gelöst. Ich würde immer noch gerne wissen, ob das erwartet wird oder nicht. Scheint mir verwirrendquelle
Wenn Sie beide einschließen möchten - akzeptieren Sie bei der Eingabe und akzeptieren Sie beim Klicken, dann tun Sie -
quelle
Wenn Sie beide einfacher als das, was ich hier gesehen habe, einfügen möchten , können Sie dies einfach tun, indem Sie Ihre Schaltfläche in das Formular einfügen.
Beispiel mit einer Funktion, die eine Nachricht sendet:
Sie können wählen, ob Sie auf die Schaltfläche klicken oder die Eingabetaste drücken möchten.
quelle