TextArea auslesen
Maddi1986
- javascript
Hallo zusammen.
Ich möchte mittels JavaScript aus einer TextArea die Anzahl der eingetippten Wörter auslesen. Dies soll aber dynamisch geschehen nach jedem eingetippten Wort soll also die Anzahl der Wörter ermittelt werden. Weil ich möchte unter der TextArea eine Spalte einfügen die sagt: "Anzahl der Ihnen verbleibenden Wörter ...". Ich habe mir gedacht, das man es mittels eines Leerzeichens auslesen kann. Also bei jedem neuen Leerzeichen kommt ein neues Wort. Aber was ist, wenn jemand ausversehen zwei mal auf die Leertaste klickt. Hat jemand hier vielleicht eine Idee wie dies funktioniert und vor allem wie man die Anzahl der Wörter aus einer TextArea bestimmen kann?
Mit freundlichen Grüßen
Maddi1986
Liebe(r) Maddi1986,
"Anzahl der Ihnen verbleibenden Wörter ...".
interessant! Ich kannte das bisher eher unter dem Ansatz der noch verbleibenden Zeichen...
Zu Deinem Problem: Du wirst das onkeyup-Event benötigen, damit jedesmal, wenn eine Taste wieder losgelassen wird, Dein Wert aktualisiert werden kann.
Nehmen wir einmal folgendes HTML als gegeben an:
<textarea id="eingabefeld" cols="40" rows="6">Text hier...</textarea>
<p>Ihnen verbleiben noch <span id="anzahl">100</span> Wörter.</p>
Jetzt können wir mittels Javascript loslegen (folgenden Code unbedingt über externe JS-Datei einbinden!):
var WoerterTester = { // neues Objekt anlegen
textareaID : "eingabefeld",
spanID: "anzahl",
maximum : 100, // maximal erlaubte Wörterzahl
init : function () {
// Unseren Tester nach dem vollständigen Laden der Seite einbinden lassen
this.oldWinOnLoad = window.onload; // alte onload-Funktion sichern
window.onload = function () { // neue onload-Funktion eintragen
if (typeof(WoerterTester.oldWinOnLoad) == "function")
WoerterTester.oldWinOnLoad();
WoerterTester.onLoad();
};
},
onLoad : function () {
// Textarea mit Überwachung versehen
document.getElementById(this.textareaID).onkeyup = function (e) {
// diese Funktion wird nun nach Loslassen einer Taste ausgeführt
WoerterTester.zaehlen(
document.getElementById(WoerterTester.textareaID),
document.getElementById(WoerterTester.spanID)
);
};
},
zaehlen : function (textarea, ausgabe) {
var eingabe = textarea.value;
var woerter = eingabe.split(/[ ]+/); // erzeugt ein Array! Mehrfache Spaces werden als ein einzelnes behandelt.
ausgabe.firstChild.nodeValue = (this.maximum - woerter.length).toString();
}
};
WoerterTester.init();
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Vielen dank für deine super Hilfe Felix. Mit deiner Hilfe habe ich die Aufgabe gelöst.