rafaelss (owner)

Revisions

gist: 186405 Download_button fork
public
Public Clone URL: git://gist.github.com/186405.git
Embed All Files: show embed
limit_chars.js #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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");