Using the below code, any input exceeding the specified maximum is removed. But this creates an effect where a character is typed and then immediately removed. I would prefer to simply prevent characters from being inputted.
<textarea id="textarea" onKeyDown="limitText()" onKeyUp="limitText()">
</textarea>
<span name="charcount_text" id="charcount_text"></span>
<script type="text/javascript">
function limitText() {
var count = document.getElementById('textarea').value.length;
var remaining = 4000 - count;
if(remaining <= 0) {
document.getElementById('charcount_text').innerHTML = '4000 character limit reached.' ;
document.getElementById('textarea').value = document.getElementById('textarea').value.substring(0, 4000);
} else if(remaining <= 50) {
document.getElementById('charcount_text').innerHTML = '4000 character limit, ' + remaining + ' remaining.';
} else {
document.getElementById('charcount_text').innerHTML = '';
}
}
</script>