resources/assets/js/plugins/jquery.charcount.js
/*
* Character Count Plugin - jQuery plugin
* Dynamic character count for text areas and input fields
* written by Alen Grakalic
* http://cssglobe.com/post/7161/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas
*
* Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* Built for jQuery library
* http://jquery.com
*
*/
(function ($) {
$.fn.charCount = function (options) {
// default configuration properties
var defaults = {
allowed: 140,
warning: 25,
css: 'counter',
counterElement: 'span',
cssWarning: 'warning',
cssExceeded: 'exceeded',
counterText: ''
}
var options = $.extend(defaults, options)
function calculate (obj) {
var count = $(obj).val().length
var available = options.allowed - count
if (available <= options.warning && available >= 0) {
$(obj).next().addClass(options.cssWarning)
} else {
$(obj).next().removeClass(options.cssWarning)
}
if (available < 0) {
$(obj).next().addClass(options.cssExceeded)
} else {
$(obj).next().removeClass(options.cssExceeded)
}
$(obj).next().html(options.counterText + available)
}
this.each(function () {
$(this).after('<' + options.counterElement + ' class="' + options.css + '">' + options.counterText + '</' + options.counterElement + '>')
calculate(this)
$(this).keyup(function () {calculate(this)})
$(this).change(function () {calculate(this)})
})
}
})(jQuery)