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(); }
Dazu:
if (evt.keyCode == 13 && !evt.shiftKey) { form.submit(); }
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);
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!