Heim >Web-Frontend >Front-End-Fragen und Antworten >Wie kann der Inhalt im Eingabefeld automatisch vorwärts bewegt werden, nachdem der Cursor in JS gelöscht wurde?
Bei der Entwicklung von Webanwendungen stoßen Sie häufig auf Szenarien, in denen Sie den Inhalt des Eingabefelds bedienen müssen. Darunter ist es eine häufige, aber auch anspruchsvolle Anforderung, den Inhalt im Eingabefeld nach dem Löschen des Cursors automatisch nach vorne zu verschieben.
In diesem Artikel stellen wir zwei Methoden vor, um diese Anforderung zu erfüllen: Eine besteht darin, die Auswahl-API von JavaScript zu verwenden, um Textoperationen durchzuführen, und die andere darin, den Inhalt im Eingabefeld durch Simulation von Tastaturereignissen automatisch nach vorne zu verschieben.
Verwenden Sie die Auswahl-API zur Textbearbeitung.
Die Auswahl-API ist eine von JavaScript bereitgestellte Textbearbeitungs-API, mit der Sie den ausgewählten Textteil des Dokuments abrufen und bearbeiten können. Bei dieser Methode verwenden wir die Auswahl-API, um das Löschen und Kopieren von Textinhalten zu implementieren.
Zuerst müssen wir den DOM-Knoten des Eingabefelds abrufen und einen Keydown-Ereignis-Listener daran binden, um auf Tastaturereignisse zu warten. Wenn der Benutzer die Rücktaste oder die Entf-Taste drückt, führen wir die folgenden Vorgänge aus:
Das Folgende ist eine vollständige Implementierung:
const inputField = document.getElementById('input-field'); inputField.addEventListener('keydown', (event) => { const selection = document.getSelection(); if (event.key === 'Backspace' || event.key === 'Delete') { const selectedText = selection.toString(); if (selectedText === '') { selection.modify('extend', 'backward', 'character'); selection.modify('move', 'backward', 'character'); } else { event.clipboardData.setData('text/plain', selectedText); selection.deleteFromDocument(); } event.preventDefault(); inputField.value = inputField.value.substring(0, selection.anchorOffset) + inputField.value.substring(selection.focusOffset); selection.setPosition(selection.anchorNode, selection.anchorOffset); } });
Verwenden Sie simulierte Tastaturereignisse zur Implementierung
Die zweite Implementierungsmethode besteht darin, das Keydown-Ereignis des Eingabefelds auszulösen, indem Tastaturereignisse simuliert werden, sodass es automatisch vorwärts geht. Diese Methode erfordert nicht die Verwendung der Auswahl-API und funktioniert in allen Browsern.
Zuerst müssen wir ein simuliertes Tastaturereignis erstellen, um zu simulieren, dass der Benutzer die Rücktaste oder die Entf-Taste drückt. Lösen Sie als Nächstes das Keydown-Ereignis im Eingabefeld aus und führen Sie die folgenden Vorgänge im Ereignis-Listener aus:
const inputField = document.getElementById('input-field'); document.addEventListener('keydown', (event) => { const selectionStart = inputField.selectionStart; const selectionEnd = inputField.selectionEnd; if (event.key === 'Backspace') { inputField.value = inputField.value.substring(0, selectionStart - 1) + inputField.value.substring(selectionEnd); inputField.selectionStart = selectionStart - 1; inputField.selectionEnd = selectionStart - 1; event.preventDefault(); } else if (event.key === 'Delete') { inputField.value = inputField.value.substring(0, selectionStart) + inputField.value.substring(selectionEnd + 1); inputField.selectionStart = selectionStart; inputField.selectionEnd = selectionStart; event.preventDefault(); } });
Das obige ist der detaillierte Inhalt vonWie kann der Inhalt im Eingabefeld automatisch vorwärts bewegt werden, nachdem der Cursor in JS gelöscht wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!