summaryrefslogtreecommitdiffstats
path: root/README.markdown
blob: 35fe8a25c87bcd0ab9b32a1e5aefe5dfe0a21456 (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# countable

A jQuery plugin that adds a character counter to inputs and textareas.


## Settings

The countable plugin has 13 settings:

* `threshold` - The percentage at which the counter begins to fade in. Default is **0.5**.
* `appendMethod` - One of **insertAfter**, **insertBefore**, **prependTo**, or **appendTo** to insert the counter after or before the input/textarea or prepend or append to the **target** element. Default is **'insertAfter'**.
* `target` - The element used relatively for the `appendMethod` option. Default is the actual input or textarea.
* `startOpacity` - The percentage of opacity it should start out with once it reaches the threshold. Default is **0.25**.
* `maxLength` - The maximum number of characters. Default uses the **maxlength** attribute of the input/textarea.
* `maxClassName` - The class name to add once the user has gone over the max number of characters. Default is **'maxed'**.
* `className` - The class name for the counter. Default is **'counter'**.
* `tagName` - The type of tag to use for the counter. Default is `span`.
* `interval` - The interval at which it checks the input/textarea. Default is **750**.
* `positiveCopy` - The copy to use when the character count is below the max. Use `{n}` to denote where the number should go. Default is **'You have {n} characters left.'**.
* `negativeCopy` - The copy to use when the character count is over the max. Use `{n}` to denote where the number should go. Default is **'You are {n} characters over.'**.
* `fadeDuration` - The duration of the fade animations. Default is **'normal'**.
* `defaultText` - Text to ignore in the character count. This would be used if you have default text that disappears when focus is brought to the text box. Default is **''**.

## Examples

Add counter to all textarea objects on the page using defaults:

    $("textarea").countable();

Add counters to a specific set of text fields, before each element:

    $("#myTextBox, textarea.info").countable({ appendMethod: "insertBefore" });

Add counter to a specific textarea, but display in a given container element (with other advanced options):

    $("#comments").each(function() {
      $(this).countable({
        threshold: .75,
        appendMethod: "appendTo",
        target: $(this).parent().find("label small"),
        startOpacity: 1,
        maxLength: $(this).metadata().maxLength,
        positiveCopy: " ({n} characters left)",
        negativeCopy: " ({n} characters over the limit)",
        fadeDuration: 0,
        defaultText: "Enter message"
      })
    });

_Note: In the last example, the code is wrapped in an `each()` function call to get `this` to point to the text element. Also, `maxLength` is being pulled from contextual information using the metadata jQuery plugin (<http://plugins.jquery.com/project/metadata>)._

## License

The countable plugin is licensed under the MIT License (LICENSE.txt).

Copyright (c) 2010 [Brandon Aaron](http://brandonaaron.net)

## Contributors

Neil Monroe (neil.monroe[at]gmail.com)