Apabila membangunkan aplikasi web, anda sering menghadapi senario di mana anda perlu mengendalikan kandungan kotak input. Antaranya, adalah keperluan biasa tetapi juga mencabar untuk memindahkan kandungan secara automatik dalam kotak input ke hadapan selepas memadamkan kursor.
Dalam artikel ini, kami akan memperkenalkan dua kaedah untuk mencapai keperluan ini: satu ialah menggunakan API Pemilihan JavaScript untuk melaksanakan operasi teks, dan satu lagi ialah mengubah hala kandungan secara automatik dalam kotak input ke kotak input dengan mensimulasikan acara papan kekunci.
Gunakan API Pemilihan untuk manipulasi teks
API Pemilihan ialah API manipulasi teks yang disediakan oleh JavaScript, yang boleh digunakan untuk mendapatkan dan memanipulasi bahagian teks yang dipilih pada dokumen. Dalam kaedah ini, kami akan menggunakan API Pemilihan untuk melaksanakan pemadaman dan penyalinan kandungan teks.
Pertama, kita perlu mendapatkan nod DOM kotak input dan mengikat pendengar acara kekunci padanya untuk mendengar acara papan kekunci. Apabila pengguna menekan kekunci Backspace atau Delete, kami akan melakukan operasi berikut:
Berikut ialah pelaksanaan lengkap:
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); } });
Gunakan acara papan kekunci simulasi untuk melaksanakan
Kaedah pelaksanaan kedua ialah untuk mensimulasikan peristiwa papan kekunci untuk mencetuskan acara kekunci kekunci kotak input dan biarkan ia bergerak ke hadapan secara automatik. Kaedah ini tidak memerlukan penggunaan API Pemilihan dan berfungsi dalam semua penyemak imbas.
Pertama, kita perlu mencipta acara papan kekunci simulasi untuk mensimulasikan pengguna menekan kekunci Backspace atau Padam. Seterusnya, cetuskan acara keydown pada kotak input dan lakukan operasi berikut dalam pendengar acara:
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(); } });
Atas ialah kandungan terperinci Bagaimana untuk membuat kandungan dalam kotak input secara automatik bergerak ke hadapan selepas memadamkan kursor dalam JS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!