12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * 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+'<b>' + available+'</b>个字(不含客户昵称和签名)');
- };
-
- 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);
|