jQuery(document).ready(function($){ jQuery('div.itemCount').each( function() { $(this).charCount(); }); }); function setupInputCharCountdown() { } (function($) { $.fn.charCount = function() { theField = jQuery('input,textarea', this); theLabel = theField.attr('id'); maxCount[theLabel] = theField.attr('maxlength'); if(maxCount[theLabel] == undefined) { maxCount[theLabel] = 250; } inputField[theLabel] = theField; inputField[theLabel].on('keyup keypress input change', {field: theLabel}, updateCount); jQuery('label',this).append("[Chars Left: " + maxCount[theLabel] + "]"); charCount[theLabel] = jQuery('span.charCount', this); updateCount(theLabel); } function updateCount(field) { if($.type(field) == "object") { field = field.data.field; } if(inputField[field].val().length == 0) { wordcount = 0; } else { wordcount = $.trim(inputField[field].val()).split(/\b[\s,\.-:;]*/).length; } if(wordcount > maxCount[field]) { charCount[field].html((0)); limited = $.trim(inputField[field].val()).split(" ", maxCount[field]); limited = limited.join(" "); inputField[field].val(limited + " "); return false; } else { charCount[field].html((maxCount[field] - wordcount)); } } var inputField = new Array(); var charCount = new Array(); var maxCount = new Array(); } (jQuery));