Heim >Web-Frontend >CSS-Tutorial >Wie kann ich „Shift Enter' erkennen, um eine neue Zeile in einen Textbereich einzufügen, anstatt ein Formular abzusenden?

Wie kann ich „Shift Enter' erkennen, um eine neue Zeile in einen Textbereich einzufügen, anstatt ein Formular abzusenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-30 09:25:13399Durchsuche

How Can I Detect

Erkennen von „Shift Enter“ und Einfügen einer neuen Zeile im Textbereich

Standardmäßig wird das Formular durch Drücken der „Enter“-Taste innerhalb eines Textbereichs gesendet. Sie möchten diese Funktionalität jedoch beibehalten und Benutzern gleichzeitig ermöglichen, durch Drücken der Tastenkombination „Umschalt“ und „Eingabe“ eine neue Zeile zu erstellen. So erreichen Sie dies in JavaScript:

Wenn Sie das Skript steuern, das „Enter“ zum Absenden des Formulars veranlasst, ändern Sie einfach den Code, um zu prüfen, ob die „Shift“-Taste nicht gedrückt ist. Ändern Sie beispielsweise Folgendes:

if (evt.keyCode == 13) {
    form.submit();
}

... in Folgendes:

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

Wenn Sie jedoch keinen Zugriff auf den Originalcode haben, können Sie das folgende Skript verwenden um das gewünschte Verhalten zu erreichen, auch wenn sich der Cursor nicht am Ende des Textes befindet:

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 as it suppresses default key action in keypress
$("#your_textarea_id").keydown(handleEnter).keypress(handleEnter);

Dieses Skript prüft auf die Tastenkombination „Umschalt“ und „Eingabe“. Wenn es erkannt wird, fügt es mithilfe der PasteIntoInput-Funktion ein Zeilenumbruchzeichen („n“) in den Textbereich ein und verhindert die standardmäßige Formularübermittlung.

Das obige ist der detaillierte Inhalt vonWie kann ich „Shift Enter' erkennen, um eine neue Zeile in einen Textbereich einzufügen, anstatt ein Formular abzusenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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