Heim > Web-Frontend > CSS-Tutorial > Wie kann ich bestimmte Teile eines Eingabefeldwerts mit JavaScript formatieren?

Wie kann ich bestimmte Teile eines Eingabefeldwerts mit JavaScript formatieren?

Linda Hamilton
Freigeben: 2024-11-28 13:38:14
Original
892 Leute haben es durchsucht

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

Styling bestimmter Teile von Eingabefeldwerten

Innerhalb eines In diesem Bereich kann es schwierig sein, den Stil bestimmter Teile der Benutzereingabe zu ändern. Da Stile im Allgemeinen für das gesamte Element gelten, ist dies nicht direkt erreichbar.

JavaScript-basierte Lösung

Um diese Einschränkung zu umgehen, kann ein JavaScript-basierter Ansatz verwendet werden. Ersetzen Sie das Feld Element mit einem Containerelement wie einem <div> und gestalten Sie es so, dass es einem Eingabefeld ähnelt.

Aufteilung des Eingabefelds

Identifizieren Sie bei der Eingabe durch den Benutzer die drei Abschnitte des Felds:

  • Vor den Änderungen (nicht bearbeitet)
  • Zum Zeitpunkt der Änderungen (bearbeitet)
  • Nach den Änderungen (nicht bearbeitet)

Verpacken Sie diese Unterteilungen in separate Elemente wie . Beispiel-Markup:

<div>
Nach dem Login kopieren

Ereignisbehandlung und Stilanpassung

Verwenden Sie Click-, Keydown- und Keyup-Ereignisse, um die drei Unterteilungen dynamisch zu identifizieren. Wenden Sie nach Bedarf Styling auf diese Bereiche an, um den gewünschten Effekt zu erzielen.

Beispiel-HTML:

<div class="input">
Nach dem Login kopieren

JavaScript zum Ersetzen der Eingabe:

let input = document.getElementById("fakeInput");
let originalInput = document.querySelector("input");
input.replaceWith(originalInput);
Nach dem Login kopieren

Ereignisbehandlung und -spanne Zusatz:

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);
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte Teile eines Eingabefeldwerts mit JavaScript formatieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage