<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for BLOG: Mitch Wilson, Austin TX</title>
	<atom:link href="http://mitchwilson.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://mitchwilson.net</link>
	<description>Web &#38; Multimedia Developer - Austin, TX</description>
	<lastBuildDate>Thu, 18 Feb 2010 20:41:59 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on maxChar jQuery Plugin: New Release 0.3 by Mauricio</title>
		<link>http://mitchwilson.net/2010/01/01/maxchar-jquery-plugin-new-release-0-3/comment-page-1/#comment-3546</link>
		<dc:creator>Mauricio</dc:creator>
		<pubDate>Thu, 18 Feb 2010 20:41:59 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=391#comment-3546</guid>
		<description>The truncate doe not work for me</description>
		<content:encoded><![CDATA[<p>The truncate doe not work for me</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on maxChar jQuery plugin by New jQuery plugin: maxChar &#171; BLOG: Mitch Wilson, Austin TX</title>
		<link>http://mitchwilson.net/maxchar/comment-page-1/#comment-3359</link>
		<dc:creator>New jQuery plugin: maxChar &#171; BLOG: Mitch Wilson, Austin TX</dc:creator>
		<pubDate>Tue, 05 Jan 2010 12:36:48 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?page_id=360#comment-3359</guid>
		<description>[...] maxChar jQuery plugin [...]</description>
		<content:encoded><![CDATA[<p>[...] maxChar jQuery plugin [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New jQuery plugin: maxChar by Mitch Wilson</title>
		<link>http://mitchwilson.net/2009/08/03/new-jquery-plugin-maxchar/comment-page-1/#comment-3351</link>
		<dc:creator>Mitch Wilson</dc:creator>
		<pubDate>Mon, 04 Jan 2010 04:27:50 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=140#comment-3351</guid>
		<description>NOTE: This post and most of these comment were about the original 0.1.0 version. For the newest 0.3.0 version and future updates, check out the &lt;a href=&quot;http://mitchwilson.net/maxchar/&quot; rel=&quot;nofollow&quot;&gt;main maxChar page&lt;/a&gt;.

VERSION 0.3.0 IS OUT (SEE ABOVE) AND VERSION 0.4.0 TO BE RELEASED SOON

To address the usability issue with truncation raised by Rulatir, I am replacing the truncate option with a new option called validate. By default validate option is true. If true, the plugin will disable the submit button if any of the fields&#039; character limit has been exceeded. Here is a sneak peek at the code so far. Also note the other new option, warningThreshold, regarding the number of characters to set a warning class on the indicator. The new code will have pass, warning and fail states to set a class on the indicator, which lets you mimic Twitter&#039;s appoarch of changing the text color from green, to orange, to red.

/**
* 
*  
*  SNEAK PEEK - FINAL 0.4.0 VERSION TO BE RELEASED SOON.
*  
*  
*  
* maxChar jQuery plugin
* @author Mitch Wilson
* @version 0.4.0 (NOT FINAL - SNEAK PEEK)
* @requires jQuery 1.3.2 (only version tested)
* @see http://mitchwilson.net/maxchar/
* @param {Boolean}	debug				Specify whether to send message updates to the Firebug console. Default is false.
* @param {String}	indicator 			Specify alternate indicator element by id. Default is indicator created dynamically.
* @param {String}	label				Specify a default label displayed when input element is not in focus. Default is blank.
* @param {String}	pluralMessage 		Set the plural form of the remaining count message. Default is &#039; remaining&#039;.
* @param {Number}	rate 				Set the update rate in milliseconds. Default is 200.
* @param {String}	singularMessage 	Set the singular form of the remaining count message. Default is &#039; remaining&#039;.
* @param {String}	spaceBeforeMessage 	Set spacing in front of (to the left of) the indicator message. Default is &#039; &#039;.
* @param {Boolean}	validate			Whether to perform limit validation and enable/disable form submission. Default is true.
* @param {Number}	warningThreshold	The character count to set the warning CSS class on the indicator. Default is 10.
* @description Enforces max character limit on any input or textarea HTML element and provides user feedback and many options. 
* New features added in 0.4.0 are: 
* 1) Feature change: Option truncate removed due to usability concerns.
* 2) New Feature: Form submit button disabled when over limit. Plugin automatically finds the submit button in the parent form.
* 3) New Feature: pass, warning and fail states for the indicator. Sets CSS classes limit_pass, limit_warn or limit_fail.
*/

(function($){
				
	$.fn.maxChar = function(limit, options) {
		
		// Define default settings and override w/ options.	
		settings = jQuery.extend({
			debug: false,
			indicator: &#039;indicator&#039;,
			label: &#039;&#039;,
			pluralMessage:&#039; remaining&#039;,
			rate: 200,
			singularMessage: &#039; remaining&#039;,
			spaceBeforeMessage: &#039; &#039;,
			validate: true,
			warningThreshold: 10
		}, options);
		
		// Get maxChar target element.
		var target = $(this); // Must get target first, since it is used in setting other local variables.
		
		// Get settings.
		var debug = settings.debug;
		var indicatorId = settings.indicator;
		var label = settings.label;
		var pluralMessage = settings.pluralMessage;
		var rate = settings.rate;
		var singularMessage = settings.singularMessage;
		var spaceBeforeMessage = settings.spaceBeforeMessage;
		var validate = settings.validate;
		var warningThreshold = settings.warningThreshold;
		
		// Set additional local variables.
		var currentMessage = &#039;&#039;; // Current message to display to the user.
		var indicator = getIndicator(indicatorId); // Element to display count, messages and label.
		var limit = limit; // Character limit.
		var remaining = limit; // Characters remaining.
		var timer = null; // Timer to run update.
		var parent_form = $(this).closest(&quot;form&quot;);
		var submit_button = parent_form.find(&#039;input[type=submit]&#039;);
		
		// Initialize on page ready.
		if(label) {
			indicator.text(label);
		} else {
			// Call update once on code initialization to update view if text is already in textarea,
			// eg, if user relaoads page or hits back button and form textarea retains previoulsy entered text.
			update(limit);
		}
		
		// When user focuses on the target element, do the following.
		$(this).focus(function(){
			if(timer == null) {
				if(label) {
					indicator.fadeOut(function(){indicator.text(&#039;&#039;)}).fadeIn(function(){start()});					
				} else {
					start();
				}
			}
		});
		
		// When user removes focus from the target element, do the following.
		$(this).blur(function() {
			// Stop timer that updates count and the indicator message.
			stop();
			// Update view.
			if(label) {
				indicator.fadeOut(function(){indicator.text(label)}).fadeIn();
			}
		});
		
		// Disabled the submit button and form submission.
		function disableSubmit() {
			submit_button.attr(&#039;disabled&#039;, &#039;disabled&#039;);
		}
		
		// Enable the submit button and form submission.
		function enableSubmit() {
			submit_button.removeAttr(&#039;disabled&#039;);
		}
		
		function getIndicator(id){
			// Get indicator element in the dom.
			var indicator = $(&#039;#&#039;+id);
			// If indicator element does not already exist in the dom, create it.
			if(indicator.length == 0) {
				target.after(spaceBeforeMessage + &#039;&lt;span id=&quot;&#039;+id+&#039;&quot;&gt;&lt;/span&gt;&#039;);
				indicator = $(&#039;#&#039;+id)
			}
			// Return reference to indicator element.
			return indicator;
		}
		
		function isValid() {
			var fail = $(&#039;.limit_fail&#039;);
			return ! (fail.length);
		}
		
		// Handle limit error.
		function limitFail() {
			indicator.addClass(&quot;limit_fail&quot;);
			indicator.removeClass(&#039;limit_pass&#039;);
			indicator.removeClass(&quot;limit_warn&quot;);
			if(validate) {
				disableSubmit();
			}
		}
		
		// Handle limit pass.
		function limitPass() {
			indicator.removeClass(&quot;limit_fail&quot;);
			indicator.addClass(&#039;limit_pass&#039;);
			indicator.removeClass(&quot;limit_warn&quot;);
			if(validate) {
				if(isValid()) {
					enableSubmit();
				} else {
					disableSubmit();
				}
			}
		}
		
		// Handle limit error.
		function limitWarn() {
			indicator.removeClass(&quot;limit_fail&quot;);
			indicator.removeClass(&#039;limit_pass&#039;);
			indicator.addClass(&quot;limit_warn&quot;);
			if(validate) {
				if(isValid()) {
					enableSubmit();
				} else {
					disableSubmit();
				}
			}
		}
		
		// Create helper functions.
		function log(message) {
			// Display 
			if(debug) {
				try {
					if(console) {
						console.log(message);
					}
				} catch(e) {
					// Do nothing on error.
				}
			}
		}
		
		// Start the timer that updates indicator.
		function start() {
			timer = setInterval(function(){update(limit)}, rate);
		}
		
		// Stop the timer that updates the indicator.
		function stop() {
			if(timer != null) {
				clearInterval(timer);
				timer = null;
			}
		}
		
		// Update the indicator.
		function update(limit){
			var remaining = limit - target.val().length;
			// Respond to remaining.
			if(remaining &lt; 0) {
				limitFail();
			} else if(remaining &lt; (warningThreshold + 1) ) {
				limitWarn();
			} else {
				limitPass();
			}
			if(remaining == 1) {
				currentMessage = remaining + singularMessage;
			} else {
				currentMessage = remaining + pluralMessage;
			}
			// Update indicator.
			indicator.text(currentMessage);
			log(currentMessage);
		}
	};
})(jQuery);</description>
		<content:encoded><![CDATA[<p>NOTE: This post and most of these comment were about the original 0.1.0 version. For the newest 0.3.0 version and future updates, check out the <a href="http://mitchwilson.net/maxchar/" rel="nofollow">main maxChar page</a>.</p>
<p>VERSION 0.3.0 IS OUT (SEE ABOVE) AND VERSION 0.4.0 TO BE RELEASED SOON</p>
<p>To address the usability issue with truncation raised by Rulatir, I am replacing the truncate option with a new option called validate. By default validate option is true. If true, the plugin will disable the submit button if any of the fields&#8217; character limit has been exceeded. Here is a sneak peek at the code so far. Also note the other new option, warningThreshold, regarding the number of characters to set a warning class on the indicator. The new code will have pass, warning and fail states to set a class on the indicator, which lets you mimic Twitter&#8217;s appoarch of changing the text color from green, to orange, to red.</p>
<p>/**<br />
*<br />
*<br />
*  SNEAK PEEK &#8211; FINAL 0.4.0 VERSION TO BE RELEASED SOON.<br />
*<br />
*<br />
*<br />
* maxChar jQuery plugin<br />
* @author Mitch Wilson<br />
* @version 0.4.0 (NOT FINAL &#8211; SNEAK PEEK)<br />
* @requires jQuery 1.3.2 (only version tested)<br />
* @see <a href="http://mitchwilson.net/maxchar/" rel="nofollow">http://mitchwilson.net/maxchar/</a><br />
* @param {Boolean}	debug				Specify whether to send message updates to the Firebug console. Default is false.<br />
* @param {String}	indicator 			Specify alternate indicator element by id. Default is indicator created dynamically.<br />
* @param {String}	label				Specify a default label displayed when input element is not in focus. Default is blank.<br />
* @param {String}	pluralMessage 		Set the plural form of the remaining count message. Default is &#8216; remaining&#8217;.<br />
* @param {Number}	rate 				Set the update rate in milliseconds. Default is 200.<br />
* @param {String}	singularMessage 	Set the singular form of the remaining count message. Default is &#8216; remaining&#8217;.<br />
* @param {String}	spaceBeforeMessage 	Set spacing in front of (to the left of) the indicator message. Default is &#8216; &#8216;.<br />
* @param {Boolean}	validate			Whether to perform limit validation and enable/disable form submission. Default is true.<br />
* @param {Number}	warningThreshold	The character count to set the warning CSS class on the indicator. Default is 10.<br />
* @description Enforces max character limit on any input or textarea HTML element and provides user feedback and many options.<br />
* New features added in 0.4.0 are:<br />
* 1) Feature change: Option truncate removed due to usability concerns.<br />
* 2) New Feature: Form submit button disabled when over limit. Plugin automatically finds the submit button in the parent form.<br />
* 3) New Feature: pass, warning and fail states for the indicator. Sets CSS classes limit_pass, limit_warn or limit_fail.<br />
*/</p>
<p>(function($){</p>
<p>	$.fn.maxChar = function(limit, options) {</p>
<p>		// Define default settings and override w/ options.<br />
		settings = jQuery.extend({<br />
			debug: false,<br />
			indicator: &#8216;indicator&#8217;,<br />
			label: &#8221;,<br />
			pluralMessage:&#8217; remaining&#8217;,<br />
			rate: 200,<br />
			singularMessage: &#8216; remaining&#8217;,<br />
			spaceBeforeMessage: &#8216; &#8216;,<br />
			validate: true,<br />
			warningThreshold: 10<br />
		}, options);</p>
<p>		// Get maxChar target element.<br />
		var target = $(this); // Must get target first, since it is used in setting other local variables.</p>
<p>		// Get settings.<br />
		var debug = settings.debug;<br />
		var indicatorId = settings.indicator;<br />
		var label = settings.label;<br />
		var pluralMessage = settings.pluralMessage;<br />
		var rate = settings.rate;<br />
		var singularMessage = settings.singularMessage;<br />
		var spaceBeforeMessage = settings.spaceBeforeMessage;<br />
		var validate = settings.validate;<br />
		var warningThreshold = settings.warningThreshold;</p>
<p>		// Set additional local variables.<br />
		var currentMessage = &#8221;; // Current message to display to the user.<br />
		var indicator = getIndicator(indicatorId); // Element to display count, messages and label.<br />
		var limit = limit; // Character limit.<br />
		var remaining = limit; // Characters remaining.<br />
		var timer = null; // Timer to run update.<br />
		var parent_form = $(this).closest(&#8221;form&#8221;);<br />
		var submit_button = parent_form.find(&#8217;input[type=submit]&#8216;);</p>
<p>		// Initialize on page ready.<br />
		if(label) {<br />
			indicator.text(label);<br />
		} else {<br />
			// Call update once on code initialization to update view if text is already in textarea,<br />
			// eg, if user relaoads page or hits back button and form textarea retains previoulsy entered text.<br />
			update(limit);<br />
		}</p>
<p>		// When user focuses on the target element, do the following.<br />
		$(this).focus(function(){<br />
			if(timer == null) {<br />
				if(label) {<br />
					indicator.fadeOut(function(){indicator.text(&#8221;)}).fadeIn(function(){start()});<br />
				} else {<br />
					start();<br />
				}<br />
			}<br />
		});</p>
<p>		// When user removes focus from the target element, do the following.<br />
		$(this).blur(function() {<br />
			// Stop timer that updates count and the indicator message.<br />
			stop();<br />
			// Update view.<br />
			if(label) {<br />
				indicator.fadeOut(function(){indicator.text(label)}).fadeIn();<br />
			}<br />
		});</p>
<p>		// Disabled the submit button and form submission.<br />
		function disableSubmit() {<br />
			submit_button.attr(&#8217;disabled&#8217;, &#8216;disabled&#8217;);<br />
		}</p>
<p>		// Enable the submit button and form submission.<br />
		function enableSubmit() {<br />
			submit_button.removeAttr(&#8217;disabled&#8217;);<br />
		}</p>
<p>		function getIndicator(id){<br />
			// Get indicator element in the dom.<br />
			var indicator = $(&#8217;#'+id);<br />
			// If indicator element does not already exist in the dom, create it.<br />
			if(indicator.length == 0) {<br />
				target.after(spaceBeforeMessage + &#8216;<span id="'+id+'"></span>&#8216;);<br />
				indicator = $(&#8217;#'+id)<br />
			}<br />
			// Return reference to indicator element.<br />
			return indicator;<br />
		}</p>
<p>		function isValid() {<br />
			var fail = $(&#8217;.limit_fail&#8217;);<br />
			return ! (fail.length);<br />
		}</p>
<p>		// Handle limit error.<br />
		function limitFail() {<br />
			indicator.addClass(&#8221;limit_fail&#8221;);<br />
			indicator.removeClass(&#8217;limit_pass&#8217;);<br />
			indicator.removeClass(&#8221;limit_warn&#8221;);<br />
			if(validate) {<br />
				disableSubmit();<br />
			}<br />
		}</p>
<p>		// Handle limit pass.<br />
		function limitPass() {<br />
			indicator.removeClass(&#8221;limit_fail&#8221;);<br />
			indicator.addClass(&#8217;limit_pass&#8217;);<br />
			indicator.removeClass(&#8221;limit_warn&#8221;);<br />
			if(validate) {<br />
				if(isValid()) {<br />
					enableSubmit();<br />
				} else {<br />
					disableSubmit();<br />
				}<br />
			}<br />
		}</p>
<p>		// Handle limit error.<br />
		function limitWarn() {<br />
			indicator.removeClass(&#8221;limit_fail&#8221;);<br />
			indicator.removeClass(&#8217;limit_pass&#8217;);<br />
			indicator.addClass(&#8221;limit_warn&#8221;);<br />
			if(validate) {<br />
				if(isValid()) {<br />
					enableSubmit();<br />
				} else {<br />
					disableSubmit();<br />
				}<br />
			}<br />
		}</p>
<p>		// Create helper functions.<br />
		function log(message) {<br />
			// Display<br />
			if(debug) {<br />
				try {<br />
					if(console) {<br />
						console.log(message);<br />
					}<br />
				} catch(e) {<br />
					// Do nothing on error.<br />
				}<br />
			}<br />
		}</p>
<p>		// Start the timer that updates indicator.<br />
		function start() {<br />
			timer = setInterval(function(){update(limit)}, rate);<br />
		}</p>
<p>		// Stop the timer that updates the indicator.<br />
		function stop() {<br />
			if(timer != null) {<br />
				clearInterval(timer);<br />
				timer = null;<br />
			}<br />
		}</p>
<p>		// Update the indicator.<br />
		function update(limit){<br />
			var remaining = limit &#8211; target.val().length;<br />
			// Respond to remaining.<br />
			if(remaining < 0) {<br />
				limitFail();<br />
			} else if(remaining < (warningThreshold + 1) ) {<br />
				limitWarn();<br />
			} else {<br />
				limitPass();<br />
			}<br />
			if(remaining == 1) {<br />
				currentMessage = remaining + singularMessage;<br />
			} else {<br />
				currentMessage = remaining + pluralMessage;<br />
			}<br />
			// Update indicator.<br />
			indicator.text(currentMessage);<br />
			log(currentMessage);<br />
		}<br />
	};<br />
})(jQuery);</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New jQuery plugin: maxChar by Mitch Wilson</title>
		<link>http://mitchwilson.net/2009/08/03/new-jquery-plugin-maxchar/comment-page-1/#comment-3348</link>
		<dc:creator>Mitch Wilson</dc:creator>
		<pubDate>Sun, 03 Jan 2010 19:05:02 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=140#comment-3348</guid>
		<description>@Rulatir Good point. The behavior should be to not submit the form. Thanks for the feedback.

In the meantime, to disable truncation on form submit, set truncate to false like this.

$(document).ready(function(){
     // Pass HTML element id and character limit.
     $(&#039;#message&#039;).maxChar(50, {truncate:false});
});

See the &lt;a href=&quot;http://mitchwilson.net/maxchar/&quot; rel=&quot;nofollow&quot;&gt;main page for more examples&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>@Rulatir Good point. The behavior should be to not submit the form. Thanks for the feedback.</p>
<p>In the meantime, to disable truncation on form submit, set truncate to false like this.</p>
<p>$(document).ready(function(){<br />
     // Pass HTML element id and character limit.<br />
     $(&#8217;#message&#8217;).maxChar(50, {truncate:false});<br />
});</p>
<p>See the <a href="http://mitchwilson.net/maxchar/" rel="nofollow">main page for more examples</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New jQuery plugin: maxChar by Rulatir</title>
		<link>http://mitchwilson.net/2009/08/03/new-jquery-plugin-maxchar/comment-page-1/#comment-3347</link>
		<dc:creator>Rulatir</dc:creator>
		<pubDate>Sun, 03 Jan 2010 14:31:42 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=140#comment-3347</guid>
		<description>Re: jayde

&gt; Totally uncalled for to say someone’s work is worthless.

As you can see, Mitch has since &quot;fixed&quot; the bug by removing the buggy feature: now you no longer have realtime enforcement of the limit, and as a bonus you get a violation of what-you-see-is-what-you-submit principle.

Considered harmful.</description>
		<content:encoded><![CDATA[<p>Re: jayde</p>
<p>&gt; Totally uncalled for to say someone’s work is worthless.</p>
<p>As you can see, Mitch has since &#8220;fixed&#8221; the bug by removing the buggy feature: now you no longer have realtime enforcement of the limit, and as a bonus you get a violation of what-you-see-is-what-you-submit principle.</p>
<p>Considered harmful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on maxChar jQuery plugin by Mitch Wilson</title>
		<link>http://mitchwilson.net/maxchar/comment-page-1/#comment-3343</link>
		<dc:creator>Mitch Wilson</dc:creator>
		<pubDate>Sat, 02 Jan 2010 23:29:16 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?page_id=360#comment-3343</guid>
		<description>Make sure to note the new feature, label, added in the last version, 0.2.0. By specifying a label, you can add a label next to the field that is dynamically replaced by the character counter when the user clicks on the field.</description>
		<content:encoded><![CDATA[<p>Make sure to note the new feature, label, added in the last version, 0.2.0. By specifying a label, you can add a label next to the field that is dynamically replaced by the character counter when the user clicks on the field.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on maxChar jQuery plugin by maxChar jQuery Plugin: New Release 0.3 &#171; BLOG: Mitch Wilson, Austin TX</title>
		<link>http://mitchwilson.net/maxchar/comment-page-1/#comment-3342</link>
		<dc:creator>maxChar jQuery Plugin: New Release 0.3 &#171; BLOG: Mitch Wilson, Austin TX</dc:creator>
		<pubDate>Sat, 02 Jan 2010 22:33:26 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?page_id=360#comment-3342</guid>
		<description>[...] See the main page, maxChar jQuery Plugin. [...]</description>
		<content:encoded><![CDATA[<p>[...] See the main page, maxChar jQuery Plugin. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on maxChar jQuery Plugin: New Release 0.3 by Mitch Wilson</title>
		<link>http://mitchwilson.net/2010/01/01/maxchar-jquery-plugin-new-release-0-3/comment-page-1/#comment-3341</link>
		<dc:creator>Mitch Wilson</dc:creator>
		<pubDate>Sat, 02 Jan 2010 18:13:43 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=391#comment-3341</guid>
		<description>Thought: several people reported issues with missing scrollbars in the textarea. Although I my plugin is not the cause, I can offer a possible solution. 

To get scrollbars, the textarea element needs a rows attribute. So, I could add an option for the plugin to add a rows attribute with a default value of something like 5 to the textarea, if the textarea does not already have a rows attribute. Adding a rows attribute fixes the scrollbar issue.

Thoughts?</description>
		<content:encoded><![CDATA[<p>Thought: several people reported issues with missing scrollbars in the textarea. Although I my plugin is not the cause, I can offer a possible solution. </p>
<p>To get scrollbars, the textarea element needs a rows attribute. So, I could add an option for the plugin to add a rows attribute with a default value of something like 5 to the textarea, if the textarea does not already have a rows attribute. Adding a rows attribute fixes the scrollbar issue.</p>
<p>Thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New jQuery plugin: maxChar by Mitch Wilson</title>
		<link>http://mitchwilson.net/2009/08/03/new-jquery-plugin-maxchar/comment-page-1/#comment-3337</link>
		<dc:creator>Mitch Wilson</dc:creator>
		<pubDate>Fri, 01 Jan 2010 18:39:58 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=140#comment-3337</guid>
		<description>Ok, I&#039;ve fixed the issues reported. See the new blog post about &lt;a href=&quot;http://mitchwilson.net/2010/01/01/maxchar-jquery-plugin-new-release-0-3/&quot; rel=&quot;nofollow&quot;&gt;version 0.3.0&lt;/a&gt;.

The big fix was removing the truncation of characters over the limit. Instead, I took the twitter approach to simply display the number of characters over the limit as negative numbers in the indicator.

Since I removed truncation of the user&#039;s text, I did add an option to truncate the text on form submission. So when a user submits the form, only the allowed number of characters are submitted, even though the form still displays them. This is a new option named truncate. The default is true but can be set to false using the settings object.

I did not address XZero&#039;s request to add limits with respect to rows. I am requesting more information about that, though.

Happy New Year!</description>
		<content:encoded><![CDATA[<p>Ok, I&#8217;ve fixed the issues reported. See the new blog post about <a href="http://mitchwilson.net/2010/01/01/maxchar-jquery-plugin-new-release-0-3/" rel="nofollow">version 0.3.0</a>.</p>
<p>The big fix was removing the truncation of characters over the limit. Instead, I took the twitter approach to simply display the number of characters over the limit as negative numbers in the indicator.</p>
<p>Since I removed truncation of the user&#8217;s text, I did add an option to truncate the text on form submission. So when a user submits the form, only the allowed number of characters are submitted, even though the form still displays them. This is a new option named truncate. The default is true but can be set to false using the settings object.</p>
<p>I did not address XZero&#8217;s request to add limits with respect to rows. I am requesting more information about that, though.</p>
<p>Happy New Year!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New jQuery plugin: maxChar by Mitch Wilson</title>
		<link>http://mitchwilson.net/2009/08/03/new-jquery-plugin-maxchar/comment-page-1/#comment-3336</link>
		<dc:creator>Mitch Wilson</dc:creator>
		<pubDate>Fri, 01 Jan 2010 00:56:27 +0000</pubDate>
		<guid isPermaLink="false">http://mitchwilson.net/?p=140#comment-3336</guid>
		<description>@mi bush, the code you pasted has some errors, probably due to copy/paste. But I see your point. This code illustrates the bug. The indicator says &quot;15 remaining&quot; but the limit remains 10 characters. I will look into this. Thanks!



$(document).ready(function(){
 $(&#039;#p&#039;).maxChar(10, {indicator:&#039;od&#039;});
 $(&#039;#p&#039;).maxChar(15, {indicator:&#039;od&#039;});
});</description>
		<content:encoded><![CDATA[<p>@mi bush, the code you pasted has some errors, probably due to copy/paste. But I see your point. This code illustrates the bug. The indicator says &#8220;15 remaining&#8221; but the limit remains 10 characters. I will look into this. Thanks!</p>
<p>$(document).ready(function(){<br />
 $(&#8217;#p&#8217;).maxChar(10, {indicator:&#8217;od&#8217;});<br />
 $(&#8217;#p&#8217;).maxChar(15, {indicator:&#8217;od&#8217;});<br />
});</p>
]]></content:encoded>
	</item>
</channel>
</rss>
