Schönen guten Morgen,
ich bin gerade an einer WordPress Webseite und dabei möchte ich beim Formular nur 2000 Zeichen zulassen. Nun ist es so, dass das Formular diese Funktion nicht bietet und ich diese selbst in dieses integriere.
Ich habe jetzt einen kleinen Ansatz entwickelt, der die Zeichen auch herunterzählt. Jedoch nicht richtig funktioniert:
- Es werden alle Tastenklicks erfasst, sodass jeder Tastenklick die 2000 Zeichen herunterzählt
Nun habe ich mir dazu Gedanken gemacht und kam auf die Idee den eingegebenen Text in der Textarea zu erfassen und dann die Länge davon zu bestimmen, sodass wirklich nur der eingegebene Text dabei berücksichtigt wird. Unerklärlicherweise wird, obwohl ich nur die Value der Textarea erfasse, jeder Tastaturklick miterfasst, was dann die Zeichenanzahl herunterzählt.
Ich weiß gerade nicht wie das sein kann & wie ich es lösen kann. Hat jemand eine Idee wie ich dies lösen kann?
Hier ist der Code & der Link zu jsFiddle:
https://jsfiddle.net/Lcjbdrmv/
window.addEventListener("load", function(){
let textarea = document.getElementById("fld_8212735_1");
textarea.setAttribute("maxlength", 2000);
let allowedChars = 2000;
let filledCharsBefore = 0;
let filledChars = 0;
textarea.addEventListener("keyup", function(ev){
if(ev.code == "Backspace" || ev.code == "Delete" || ev.code == "NumpadDecimal"){
filledChars = textarea.value.length;
allowedChars = 2000 - filledChars ;
}else{
if(filledChars < 1 ){
filledChars = textarea.value.length;
}else if(filledChars >= 1){
filledChars = textarea.value.length;
filledCharsBefore = filledChars - 1;
}
allowedChars = allowedChars - (filledChars - filledCharsBefore) ;
}
document.getElementById("maxChars").innerText = allowedChars;
});
});
Alles anzeigen
Ich freue mich schon von euch zu hören.
Schöne Grüße,
Stef