Rumah > hujung hadapan web > tutorial css > Bagaimanakah Saya Boleh Menggayakan Bahagian Khusus Nilai Medan Input Menggunakan JavaScript?

Bagaimanakah Saya Boleh Menggayakan Bahagian Khusus Nilai Medan Input Menggunakan JavaScript?

Linda Hamilton
Lepaskan: 2024-11-28 13:38:14
asal
978 orang telah melayarinya

How Can I Style Specific Parts of an Input Field Value Using JavaScript?

Menggayakan Bahagian Khusus Nilai Medan Input

Dalam medan, menukar gaya bahagian tertentu input pengguna boleh menjadi mencabar. Memandangkan gaya biasanya digunakan pada keseluruhan elemen, ia tidak boleh dicapai secara langsung.

Penyelesaian Berasaskan JavaScript

Untuk memintas pengehadan ini, pendekatan berasaskan JavaScript boleh digunakan. Gantikan elemen dengan elemen bekas seperti <div> dan gayakannya supaya menyerupai medan input.

Bahagian Medan Input

Apabila pengguna menaip, kenal pasti tiga bahagian medan:

  • Sebelum perubahan (tidak disunting)
  • Pada titik perubahan (diedit)
  • Selepas perubahan (tidak diedit)

Balut bahagian ini dalam elemen berasingan seperti . Contoh penanda:

<div>
Salin selepas log masuk

Pengendalian Acara dan Pelarasan Gaya

Gunakan acara klik, keydown dan keyup untuk mengenal pasti tiga bahagian secara dinamik. Gunakan penggayaan pada rentang ini mengikut keperluan untuk mencapai kesan yang diingini.

Contoh HTML:

<div class="input">
Salin selepas log masuk

JavaScript untuk Menggantikan Input:

let input = document.getElementById("fakeInput");
let originalInput = document.querySelector("input");
input.replaceWith(originalInput);
Salin selepas log masuk

Pengendalian dan Rentang Acara Tambahan:

originalInput.addEventListener("input", (e) => {
  let before = originalInput.value.substring(0, e.target.selectionStart);
  let edited = originalInput.value.substring(e.target.selectionStart, e.target.selectionEnd);
  let after = originalInput.value.substring(e.target.selectionEnd);

  let nonEditedBefore = document.createElement("span");
  nonEditedBefore.className = "nonEdited before";
  nonEditedBefore.textContent = before;

  let editedSpan = document.createElement("span");
  editedSpan.className = "edited";
  editedSpan.textContent = edited;

  let nonEditedAfter = document.createElement("span");
  nonEditedAfter.className = "nonEdited after";
  nonEditedAfter.textContent = after;

  input.appendChild(nonEditedBefore);
  input.appendChild(editedSpan);
  input.appendChild(nonEditedAfter);
});
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggayakan Bahagian Khusus Nilai Medan Input Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan