Heim > Web-Frontend > CSS-Tutorial > Wie kann ich das Absenden eines Formulars verhindern und eine neue Zeile mit der Umschalttaste in einem Textbereich erstellen?

Wie kann ich das Absenden eines Formulars verhindern und eine neue Zeile mit der Umschalttaste in einem Textbereich erstellen?

Susan Sarandon
Freigeben: 2024-12-04 18:09:12
Original
473 Leute haben es durchsucht

How to Prevent Form Submission and Create a New Line with Shift Enter in a Textarea?

Wie erkennt man „Shift Enter“ und generiert eine neue Zeile im Textbereich?

Bei Formularübermittlungen löst das Drücken der Eingabetaste normalerweise die Übermittlung des Formulars aus . In vielen Textbereichen ist es jedoch wünschenswert, Benutzern stattdessen das Drücken der Umschalt-Eingabetaste zu ermöglichen, um eine neue Zeile zu erstellen.

Lösung 1: Formularübermittlungsskript ändern

Wenn Sie Wenn das Formular aufgrund eines bestimmten Skripts bei Eingabe der Eingabetaste gesendet wird, suchen Sie dieses Skript und ändern Sie es so, dass es nur dann gesendet wird, wenn die Eingabetaste ohne Umschalttaste gedrückt wird. Ändern Sie beispielsweise diesen Code:

if (evt.keyCode == 13) {
    form.submit();
}
Nach dem Login kopieren

Dazu:

if (evt.keyCode == 13 && !evt.shiftKey) {
    form.submit();
}
Nach dem Login kopieren

Lösung 2: Behandeln von Schlüsselereignissen (für alle Browser)

Wenn Sie keinen Zugriff auf das Formularübermittlungsskript haben, können Sie JavaScript verwenden, um wichtige Ereignisse zu verarbeiten und eine neue Zeile einzufügen, wenn die Umschalttaste gedrückt wird gedrückt.

function handleEnter(evt) {
    if (evt.keyCode == 13 && evt.shiftKey) {
        if (evt.type == "keypress") {
            pasteIntoInput(this, "\n");
        }
        evt.preventDefault();
    }
}

// Handle both keydown and keypress for Opera
$("#your_textarea_id").keydown(handleEnter).keypress(handleEnter);
Nach dem Login kopieren

Dieser Code fügt beim Tastendruck eine neue Zeile in den Textbereich ein, wenn die Umschalt-Eingabetaste gedrückt wird. Randfälle werden behandelt, indem sowohl Keydown- als auch Keypress-Ereignisse verwendet werden.

Hinweis: Diese Lösung erfordert eine externe Bibliothek oder benutzerdefinierten Code, um das Zeilenumbruchzeichen an der richtigen Caret-Position in den Textbereich einzufügen.

Das obige ist der detaillierte Inhalt vonWie kann ich das Absenden eines Formulars verhindern und eine neue Zeile mit der Umschalttaste in einem Textbereich erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage