Skip to content

Instantly share code, notes, and snippets.

@rafaelss
Created September 14, 2009 00:50
Show Gist options
  • Save rafaelss/186405 to your computer and use it in GitHub Desktop.
Save rafaelss/186405 to your computer and use it in GitHub Desktop.
function limitChars(textarea, limit, infodiv) {
$(textarea).observe("keyup", function(event) {
var text = $F(event.element());
var textlength = text.length;
var info = $(infodiv);
if(textlength > limit) {
info.innerHTML = 'You cannot write more then ' + limit + ' characters!';
event.element().setValue(text.substr(0, limit));
event.stop();
}
else {
info.innerHTML = 'You have '+ (limit - textlength) +' characters left.';
}
});
$(textarea).observe("keydown", function(event) {
if($F(event.element()).length == limit) {
var key = event.which || event.keyCode;
switch(key) {
case Event.KEY_BACKSPACE:
case Event.KEY_TAB:
case Event.KEY_RETURN:
case Event.KEY_ESC:
case Event.KEY_LEFT:
case Event.KEY_UP:
case Event.KEY_RIGHT:
case Event.KEY_DOWN:
case Event.KEY_DELETE:
break;
default:
if(!event.ctrlKey && !event.altKey && !event.metaKey) {
event.stop();
}
break;
}
}
});
}
// usage:
// limitChars("textarea_id", 190, "information_div_id");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment