Zliczanie znaków w formularzu (input, textarea) – JavaScript

Kilka miesięcy temu dla potrzeb jakiegoś skryptu napisałem prostą funkcję JavaScript sprawdzającą wpisaną ilość znaków do danego pola formularza. W zależności czy został przekroczony limit zamienia kolor tekstu z zielonego na czerwony (można dowolnie zmieniać).

Funkcja sama w sobie jest bardzo prosta i zawiera się w dosłownie kilku liniach. Należy ją wkleić w sekcji head

<script language="JavaScript">
function StringCount(limit,name,output) {
	document.getElementById(""+output+"").innerHTML = limit-eval("document.getElementsByName('"+name+"')[0].value.length"); 
 
	if (eval("document.getElementsByName('"+name+"')[0].value.length") > limit) {
		document.getElementById(""+output+"").style.color="red";
	}
		else {document.getElementById(""+output+"").style.color="green";
	}
}
</script>

Wywołanie funkcji jest może trochę uciążliwe, ponieważ trzeba dodać nowy element, gdzie będzie wyświetlana aktualna ilość wpisanych znaków.

	<span id="textareaLength" style="color: green;">50</span>
	<textarea name="content" onkeyup="StringCount(50,'content','textareaLength');"></textarea>

Argumentami funkcji StringCount, są kolejno:
1) dopuszczalna ilość znaków (integer więc może być podawana bez apostrofów),
2) nazwa pola formularza (name=”nazwa”),
3) identyfikator elementu, w którym będzie wyświetlana aktualna ilość znaków.

Demo funkcji