<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dave Russell &#187; JQuery</title>
	<atom:link href="http://daverussell.co.za/wordpress/category/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://daverussell.co.za/wordpress</link>
	<description>Helping me remember and hopefully helping others at the same time.</description>
	<lastBuildDate>Thu, 14 Apr 2011 07:16:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Detect browser window focus</title>
		<link>http://daverussell.co.za/wordpress/2011/04/13/detect-browser-window-focus/</link>
		<comments>http://daverussell.co.za/wordpress/2011/04/13/detect-browser-window-focus/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 11:55:50 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=230</guid>
		<description><![CDATA[The scenario: You have a link that creates a hidden iframe which generates a file download (a pdf of the current page in my example). You have cleverly given the user some visual feedback in the form of an animated &#8216;waiting&#8217; gif and you would like the clever animation to go away once the user [...]]]></description>
			<content:encoded><![CDATA[<p>The scenario: You have a link that creates a hidden iframe which generates a file download (a pdf of the current page in my example). You have cleverly given the user some visual feedback in the form of an animated &#8216;waiting&#8217; gif and you would like the clever animation to go away once the user has saved the file.</p>
<p>Using a javascript setTimeout is just not going to work as you don&#8217;t know how long this will take, so the logical thing is to detect when the browser window gets focus again.</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> <span class="kw3">onFocus</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#icon_pdf&#8217;</span><span class="br0">&#41;</span>.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="st0">&#8216;icon_pdf_waiting&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="coMULTI">/*@cc_on!@*/</span><span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> document.<span class="me1">onfocusin</span> <span class="sy0">=</span> <span class="kw3">onFocus</span><span class="sy0">;</span><span class="coMULTI">/*IE*/</span> <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> window.<span class="kw3">onfocus</span> <span class="sy0">=</span> <span class="kw3">onFocus</span><span class="sy0">;</span> <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#icon_pdf&#8217;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;icon_pdf_waiting&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;iframe#pdfFrame&#8217;</span><span class="br0">&#41;</span>.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>document.<span class="me1">body</span><span class="br0">&#41;</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#8216;&lt;IFRAME height=&quot;1&quot; width=&quot;1&quot; id=&quot;pdfFrame&quot;&gt;&lt;/IFRAME&gt;&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;iframe#pdfFrame&#8217;</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#8216;src&#8217;</span><span class="sy0">,</span> <span class="st0">&#8216;/pdf/save.aspx?url=&#8217;</span> <span class="sy0">+</span> location.<span class="me1">href</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>The icon_pdf_waiting class replaces the existing icon with a waiting icon, so removing the class once you finished puts the existing icon back.</p>
<p>I only needed the onfocus event, but you could also make use of the onblur if need be.</p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2011/04/13/detect-browser-window-focus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A truly versatile three column template</title>
		<link>http://daverussell.co.za/wordpress/2011/04/11/a-truly-versatile-three-column-template/</link>
		<comments>http://daverussell.co.za/wordpress/2011/04/11/a-truly-versatile-three-column-template/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 13:30:23 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Three column layout]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=226</guid>
		<description><![CDATA[There are hundreds of 3 column templates out there, so what&#8217;s one more right? Well the difference here is that this one template can handle 1,2 or 3 columns, purely dependent on the existence of the columns on the html. So, if you have a CMS system and you generate a left or right column, [...]]]></description>
			<content:encoded><![CDATA[<p>There are hundreds of 3 column templates out there, so what&#8217;s one more right? Well the difference here is that this one template can handle 1,2 or 3 columns, purely dependent on the existence of the columns on the html. So, if you have a CMS system and you generate a left or right column, then it will be rendered correctly, but if not then the content will stretch accordingly.</p>
<p>First we need some structure</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;skin&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;align rel&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;page&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;abs&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;main&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;column&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span>Heading<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;startcontent&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;content&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;rel&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;footer&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>footer<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&#8216;left&#8217;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&#8216;column abs leftcolumn&#8217;</span>&gt;&lt;<a href="http://december.com/html/4/element/h2.html"><span class="kw2">h2</span></a>&gt;</span>Left<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h2.html"><span class="kw2">h2</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&#8216;right&#8217;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&#8216;column abs rightcolumn&#8217;</span>&gt;&lt;<a href="http://december.com/html/4/element/h2.html"><span class="kw2">h2</span></a>&gt;</span>Right<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h2.html"><span class="kw2">h2</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span> &nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc-1">&lt;!&#8211; items that fall ouside of the page structure&#8211;&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;bannerimage&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;abs&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;align&quot;</span>&gt;</span>banner<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span></div>
</div>
<p>Some CSS (I like to include a <a href="http://meyerweb.com/eric/tools/css/reset/">reset.css</a> before this to clear out any cross browser issues)</p>
<div class="codesnip-container" >
<div class="css codesnip" style="font-family:monospace;"><span class="re1">.align</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">width</span><span class="sy0">:</span><span class="re3">1004px</span><span class="sy0">;</span>margin<span class="sy0">:</span>0 <span class="kw2">auto</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re1">.rel</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">position</span><span class="sy0">:</span><span class="kw2">relative</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re1">.abs</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">position</span><span class="sy0">:</span><span class="kw2">absolute</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re1">.displayblock</span> &nbsp; <span class="br0">&#123;</span><span class="kw1">display</span><span class="sy0">:</span><span class="kw2">block</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#page</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">width</span><span class="sy0">:</span><span class="re3">1004px</span><span class="sy0">;</span>top<span class="sy0">:</span><span class="re3">340px</span><span class="sy0">;</span>background-<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#fff</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#left</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">top</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span>left<span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span>width<span class="sy0">:</span><span class="re3">220px</span><span class="sy0">;</span>background-<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#eee</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#right</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">top</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span>left<span class="sy0">:</span><span class="re3">740px</span><span class="sy0">;</span>width<span class="sy0">:</span><span class="re3">264px</span><span class="sy0">;</span>background-<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#eee</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#main</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">margin</span><span class="sy0">:</span>0 <span class="re3">10px</span><span class="sy0">;</span>background-<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#bbb</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re1">.incleft</span> <span class="re0">#main</span> &nbsp;<span class="br0">&#123;</span><span class="kw1">margin-left</span><span class="sy0">:</span><span class="re3">220px</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re1">.incright</span> <span class="re0">#main</span> <span class="br0">&#123;</span><span class="kw1">margin-right</span><span class="sy0">:</span><span class="re3">265px</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; .<span class="kw1">content</span> &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">margin</span><span class="sy0">:</span><span class="re3">27px</span> <span class="re3">30px</span> <span class="re3">100px</span> <span class="re3">30px</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#bannerimage</span> &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">top</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span>left<span class="sy0">:</span><span class="re3">-1px</span><span class="sy0">;</span>z-index<span class="sy0">:</span>-<span class="nu0">1</span><span class="sy0">;</span>width<span class="sy0">:</span><span class="re3"><span class="nu0">100</span>%</span><span class="sy0">;</span>height<span class="sy0">:</span><span class="re3">600px</span><span class="sy0">;</span>margin<span class="sy0">:</span>0 <span class="kw2">auto</span><span class="sy0">;</span>background-<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#ccc</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#bannerimage</span> a &nbsp;<span class="br0">&#123;</span><span class="kw1">height</span><span class="sy0">:</span><span class="re3">195px</span><span class="sy0">;</span>margin-<span class="kw1">top</span><span class="sy0">:</span><span class="re3">85px</span><span class="sy0">;</span>display<span class="sy0">:</span><span class="kw2">block</span><span class="sy0">;</span><span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">#footer</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">width</span><span class="sy0">:</span><span class="re3">1004px</span><span class="sy0">;</span>height<span class="sy0">:</span><span class="re3">200px</span><span class="sy0">;</span>background-<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#ddd</span><span class="sy0">;</span><span class="br0">&#125;</span></div>
</div>
<p>And then the javascript (remember to add the jQuery library and an optional equal heights plugin)</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="co1">//&#8212;Column display manager</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">&#8216;#page .leftcolumn&#8217;</span><span class="br0">&#41;</span>.<span class="me1">length</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#page&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;incleft&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#left&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;displayblock&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">&#8216;#page .rightcolumn&#8217;</span><span class="br0">&#41;</span>.<span class="me1">length</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#page&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;incright&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#right&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;displayblock&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//&#8212;Column equal heights | dependancy: jquery.equalheights.js</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">&#8216;.column&#8217;</span><span class="br0">&#41;</span>.<span class="me1">length</span> <span class="sy0">&gt;</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> $<span class="br0">&#40;</span><span class="st0">&#8216;.column&#8217;</span><span class="br0">&#41;</span>.<span class="me1">equalHeights</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</div>
<p>The great thing about this template is that it justs works &#8211; remove the #left div and the content takes up the first two columns, remove the #right div and the content takes up the last two columns. Take out # left and #right and, I&#8217;m sure you&#8217;ve guessed it, the content takes up all three columns.</p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2011/04/11/a-truly-versatile-three-column-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi Column Lists with jQuery and CSS</title>
		<link>http://daverussell.co.za/wordpress/2011/04/11/multi-column-lists-with-jquery-and-css/</link>
		<comments>http://daverussell.co.za/wordpress/2011/04/11/multi-column-lists-with-jquery-and-css/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 12:43:29 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[holy grail]]></category>
		<category><![CDATA[multi column lists]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=216</guid>
		<description><![CDATA[I found myself needing to solve this problem and some googling revealed that I was not the only one. The challenge I had was how to take a long list of items and make them wrap, creating columns, newspaper style next to each other. The closest I got was from the guys at alistapart, but [...]]]></description>
			<content:encoded><![CDATA[<p>I found myself needing to solve this problem and some googling revealed that I was not the only one. The challenge I had was how to take a long list of items and make them wrap, creating columns, newspaper style next to each other. The closest I got was from the guys at <a href="http://www.alistapart.com/articles/multicolumnlists/">alistapart</a>, but still not quite what I was after.</p>
<p>So, with coffee mug charged and appropriate tunes on the ipod I set out to solve some problems. The resulting jQuery function is actually quite succinct &#8211; maybe I have left something out, but it is exactly what I need: The list is dynamic, so I never know quite how long it is going to be and I do not want children elements to be spread over multiple columns.</p>
<p>The list goes something like this</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;test&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Parent<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Parent<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>child<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>&#8230;</div>
</div>
<p>and the javascript something like this:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">jQuery.<span class="me1">fn</span>.<span class="me1">multiColumnList</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>settings<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; settings <span class="sy0">=</span> jQuery.<span class="me1">extend</span><span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; width<span class="sy0">:</span> 300<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; maxheight<span class="sy0">:</span> 400<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; forceWidth<span class="sy0">:</span> <span class="kw2">false</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span> settings<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> $originallist <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> cols <span class="sy0">=</span> Math.<span class="me1">round</span><span class="br0">&#40;</span>$originallist.<span class="me1">width</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">/</span> settings.<span class="me1">width</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> colwidth <span class="sy0">=</span> Math.<span class="me1">floor</span><span class="br0">&#40;</span>$<span class="br0">&#40;</span>$originallist<span class="br0">&#41;</span>.<span class="me1">width</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">/</span> cols<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> size <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;&gt;li&#8217;</span><span class="sy0">,</span> <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> newlist <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> currentColumnHeight <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&quot;&gt;li&quot;</span><span class="br0">&#41;</span>.<span class="me1">eq</span><span class="br0">&#40;</span>0<span class="br0">&#41;</span>.<span class="me1">height</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> currentColumnContents <span class="sy0">=</span> <span class="st0">&#8216;&lt;li&gt;&#8217;</span> <span class="sy0">+</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&quot;&gt;li&quot;</span><span class="br0">&#41;</span>.<span class="me1">eq</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&#8216;&lt;/li&gt;&#8217;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> size<span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>i <span class="sy0">+</span> 1<span class="br0">&#41;</span> <span class="sy0">&lt;</span> size<span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>currentColumnHeight <span class="sy0">&lt;</span> settings.<span class="me1">maxheight</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; currentColumnContents <span class="sy0">=</span> currentColumnContents <span class="sy0">+</span> <span class="st0">&#8216;&lt;li&gt;&#8217;</span> <span class="sy0">+</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&quot;&gt;li&quot;</span><span class="br0">&#41;</span>.<span class="me1">eq</span><span class="br0">&#40;</span>i <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&#8216;&lt;/li&gt;&#8217;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; currentColumnHeight <span class="sy0">=</span> currentColumnHeight <span class="sy0">+</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&quot;&gt;li&quot;</span><span class="br0">&#41;</span>.<span class="me1">eq</span><span class="br0">&#40;</span>i <span class="sy0">+</span> 1<span class="br0">&#41;</span>.<span class="me1">height</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newlist <span class="sy0">=</span> newlist <span class="sy0">+</span> <span class="st0">&#8216;&lt;ul class=&quot;megacol&quot;&gt;&#8217;</span> <span class="sy0">+</span> currentColumnContents <span class="sy0">+</span> <span class="st0">&#8216;&lt;/ul&gt;&#8217;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; currentColumnContents <span class="sy0">=</span> <span class="st0">&#8216;&lt;li&gt;&#8217;</span> <span class="sy0">+</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&quot;&gt;li&quot;</span><span class="br0">&#41;</span>.<span class="me1">eq</span><span class="br0">&#40;</span>i <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&#8216;&lt;/li&gt;&#8217;</span><span class="sy0">;</span> <span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; currentColumnHeight <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&quot;&gt;li&quot;</span><span class="br0">&#41;</span>.<span class="me1">eq</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span>.<span class="me1">height</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; newlist <span class="sy0">=</span> newlist <span class="sy0">+</span> <span class="st0">&#8216;&lt;ul class=&quot;megacol&quot;&gt;&#8217;</span> <span class="sy0">+</span> currentColumnContents <span class="sy0">+</span> <span class="st0">&#8216;&lt;/ul&gt;&lt;br style=&quot;clear:both&quot;&gt;&#8217;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; $<span class="br0">&#40;</span>newlist<span class="br0">&#41;</span>.<span class="me1">insertBefore</span><span class="br0">&#40;</span>$originallist<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>settings.<span class="me1">forceWidth</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;ul.megacol&#8217;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&#8216;width&#8217;</span><span class="sy0">,</span> settings.<span class="me1">width</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; $originallist.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">this</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Lastly, a sprinkling of CSS to make sure your new columns render next to each other</p>
<div class="codesnip-container" >
<div class="css codesnip" style="font-family:monospace;"><span class="re1">.megacol</span> &nbsp; &nbsp;<span class="br0">&#123;</span><span class="kw1">float</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><span class="br0">&#125;</span></div>
</div>
<p>To make this all come together, make sure you have included the jQuery library and the function before calling it: </p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#test&quot;</span><span class="br0">&#41;</span>.<span class="me1">guidemega</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2011/04/11/multi-column-lists-with-jquery-and-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A really really flexible CSS layout</title>
		<link>http://daverussell.co.za/wordpress/2010/01/13/a-really-really-flexible-css-layout/</link>
		<comments>http://daverussell.co.za/wordpress/2010/01/13/a-really-really-flexible-css-layout/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:09:01 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=150</guid>
		<description><![CDATA[This is a really really flexible layout that does not make use of tables and can be used as either a 1,2 or 3 column layout by simply including or omitting the left and right columns. The content is king, so the content comes first in the html followed by the rest. The structure is [...]]]></description>
			<content:encoded><![CDATA[<p>This is a really really flexible layout that does not make use of tables and can be used as either a 1,2 or 3 column layout by simply including or omitting the left and right columns. The content is king, so the content comes first in the html followed by the rest. The structure is controlled via CSS with a little bit of coolness added on thanks to jQuery.</p>
<p>The top banner code is there only to show what is possible, the reason I built this was to have one template that could handle any layout. The interesting thing about the top banner though is that there are two background images on top of each other which creates a lot or flexibility when it comes to banner imagery that overlaps the extents of the 960 by x height banner area.</p>
<p>I have used one jQuery plugin to force equal height columns (1kb) and made use of the cdn for the jquery source.  So this should be really quick as well as flexible.</p>
<p><a title="the really really flexible demo" href="http://www.daverussell.co.za/Demos/FlexibleLayout/index.htm" target="_blank">Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2010/01/13/a-really-really-flexible-css-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple, accessible, standards based and validated Form</title>
		<link>http://daverussell.co.za/wordpress/2010/01/08/simple-accessible-standards-based-and-validated-form/</link>
		<comments>http://daverussell.co.za/wordpress/2010/01/08/simple-accessible-standards-based-and-validated-form/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 10:29:58 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=145</guid>
		<description><![CDATA[We all know that tables are evil and you run the risk of being seriously uncool if you are caught using them. But when it comes to forms they really make cross browser layouts that much easier, which is why there are so many forms that use tables. In the interest of good standards based [...]]]></description>
			<content:encoded><![CDATA[<p>We all know that tables are evil and you run the risk of being seriously uncool if you are caught using them. But when it comes to forms they really make cross browser layouts that much easier, which is why there are so many forms that use tables. In the interest of good standards based design I have created a form based on fieldsets and definition lists.</p>
<p>There are actually a few points to mention:</p>
<ul>
<li>Definition lists are used to layout name/value pairs,</li>
<li>jquery validation modified from <a title="Simple validation with jQuery" href="http://webcloud.se/article/Form_validation_with_jQuery_from_scratch/?demo-field-1=s&amp;demo-field-1=&amp;demo-field-3=" target="_blank">this article</a>,</li>
<li>a conditional stylesheet has been used to please that other browser,</li>
<li>the<a title="Sliding Doors" href="http://www.google.co.za/url?sa=t&amp;source=web&amp;ct=res&amp;cd=2&amp;ved=0CBQQFjAB&amp;url=http%3A%2F%2Fwww.alistapart.com%2Farticles%2Fslidingdoors%2F&amp;rct=j&amp;q=sliding+doors+css&amp;ei=XwRHS9vBO8bRjAeq_sCABw&amp;usg=AFQjCNFXHNPi1KIP2elx7Zj-gmVTNS0HQg&amp;sig2=BGK2O8bvuvYc3eQfpDoNtw" target="_blank"> sliding doors technique</a> has been used to style the submit button,</li>
<li>Eric Meyer&#8217;s <a title="Reset your CSS" href="http://meyerweb.com/eric/tools/css/reset/" target="_blank">css reset</a> was used to initialise defaults across browsers,</li>
<li>Required fields denoted by a star just by adding a class to the dt tag.</li>
</ul>
<p>This form has been tested in all the major browsers: ie6+, firefox and chrome.</p>
<p><a title="Accessible Form" href="http://www.daverussell.co.za/Demos/Form/form.htm" target="_blank">The Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2010/01/08/simple-accessible-standards-based-and-validated-form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Infinite Loop</title>
		<link>http://daverussell.co.za/wordpress/2009/12/11/jquery-infinite-loop/</link>
		<comments>http://daverussell.co.za/wordpress/2009/12/11/jquery-infinite-loop/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 07:20:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=114</guid>
		<description><![CDATA[After looking around for a while I could not find something that would create a closed loop effect when scrolling through options in a carousel&#8230; so i had to build it. There are a lot of gallery type carousels that will left you click left and right to navigate through, but come to a dead [...]]]></description>
			<content:encoded><![CDATA[<p>After looking around for a while I could not find something that would create a closed loop effect when scrolling through options in a carousel&#8230; so i had to build it. There are a lot of gallery type carousels that will left you click left and right to navigate through, but come to a dead end once you hit the first of last item. I wanted to be able to continue clicking to go round and round through the options. </p>
<p><img src="http://daverussell.co.za/wordpress/wp-content/uploads/2009/12/infiniteloop.jpg" alt="infiniteloop" title="infiniteloop" width="411" height="76" class="alignnone size-full wp-image-115" /></p>
<p><a href="http://www.daverussell.co.za/Demos/jQuery/InfiniteLoop/index.html" target="_blank">Check out the demo.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/12/11/jquery-infinite-loop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Showing the loading icon when jQuery is waiting for a response</title>
		<link>http://daverussell.co.za/wordpress/2009/12/03/showing-the-loading-icon-when-jquery-is-waiting-for-a-response/</link>
		<comments>http://daverussell.co.za/wordpress/2009/12/03/showing-the-loading-icon-when-jquery-is-waiting-for-a-response/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 14:39:04 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=90</guid>
		<description><![CDATA[Here&#8217;s a very simple method of putting an overlay on the page when you are making an asynchronous call using $.ajax. As the page does not refresh, you need to alert your user that work is actually been done and that they cannot interact with the page until you have finished The css: .lightbox_bg { [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a very simple method of putting an overlay on the page when you are making an asynchronous call using $.ajax. As the page does not refresh, you need to alert your user that work is actually been done and that they cannot interact with the page until you have finished</p>
<p>The css:</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;">.lightbox_bg {<br />
&nbsp; &nbsp; &nbsp; &nbsp; background:#ffffff none repeat scroll 0 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; display:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:800px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; left:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; filter:alpha(opacity=50);<br />
&nbsp; &nbsp; &nbsp; &nbsp; opacity: 0.5;<br />
&nbsp; &nbsp; &nbsp; &nbsp; top:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; z-index:1110;<br />
&nbsp; &nbsp; &nbsp; &nbsp; display:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:fixed;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; .modal{<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; left:45%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; top:45%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; z-index:1111;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:32px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:32px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background:url(/image/of/your/choice.gif) #fff 50% 50% no-repeat;}</div>
</div>
<p>The javascript:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">$<span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStart</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;&lt;div /&gt;&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;lightbox_bg&#8217;</span><span class="br0">&#41;</span>.<span class="me1">appendTo</span><span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;&lt;div /&gt;&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;modal&#8217;</span><span class="br0">&#41;</span>.<span class="me1">appendTo</span><span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStop</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;.lightbox_bg&#8217;</span><span class="br0">&#41;</span>.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;.modal&#8217;</span><span class="br0">&#41;</span>.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Thats it, now everytime you do your ajax magic the ajaxstart method will kick in and do its bit &#8211; then when its finished the ajaxstop method will remove the overlay.</p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/12/03/showing-the-loading-icon-when-jquery-is-waiting-for-a-response/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax using .Net and jQuery &#8211; Revised and improved with help from Json</title>
		<link>http://daverussell.co.za/wordpress/2009/12/03/ajax-using-net-and-jquery-revised-and-improved-with-help-from-json/</link>
		<comments>http://daverussell.co.za/wordpress/2009/12/03/ajax-using-net-and-jquery-revised-and-improved-with-help-from-json/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 14:26:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=76</guid>
		<description><![CDATA[I previously wrote a post outlining a simpler method of making asynchronous calls with jQuery. It turns out that in practice that method was exactly that &#8211; too simple. It works fine when you only need one value back, but if you need to work with something a little more complex then try out my [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://daverussell.co.za/wordpress/2009/07/28/ajax-using-dotnet-and-jquery/">previously wrote a post</a> outlining a simpler method of making asynchronous calls with <a href="http://www.jquery.com">jQuery</a>. It turns out that in practice that method was exactly that &#8211; too simple. It works fine when you only need one value back, but if you need to work with something a little more complex then try out my new method that uses a <a href="http://json.org">JSON object</a>.  So the basic overview is as follows: </p>
<ol>
<li>create an object server-side on page load and add it to the DOM</li>
<li>populate the object using javascript</li>
<li>pass it back to a webservice using jquery&#8217;s ajax method and json</li>
<li>use the new object serverside and pass it back</li>
</ol>
<p>Ok, so lets get started by creating the object in your webservice:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw4">class</span> Person<br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Name <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> ContactNumber <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Description <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</div>
<p>Then in your page load you can inject this object into the DOM:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;">var objPerson <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Webservice.<span class="me1">Person</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
var js <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> JavaScriptSerializer<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
Page.<span class="me1">ClientScript</span>.<span class="me1">RegisterArrayDeclaration</span><span class="br0">&#40;</span><span class="st0">&quot;_person&quot;</span>, js.<span class="me1">Serialize</span><span class="br0">&#40;</span>objPerson<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Now you can use this object with javascript:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">&#8230;</p>
<p><span class="kw2">function</span> AjaxMethodJSON<span class="br0">&#40;</span>serviceFn<span class="sy0">,</span> paramArray<span class="sy0">,</span> successFn<span class="sy0">,</span> errorFn<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; $.<span class="me1">ajax</span><span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; type<span class="sy0">:</span> <span class="st0">&quot;POST&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; url<span class="sy0">:</span> serviceFn<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; contentType<span class="sy0">:</span> <span class="st0">&quot;application/json; charset=utf-8&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; data<span class="sy0">:</span> <span class="st0">&quot;{&#8216;clientobject&#8217;:&quot;</span> <span class="sy0">+</span> JSON.<span class="me1">stringify</span><span class="br0">&#40;</span>paramArray<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;}&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dataType<span class="sy0">:</span> <span class="st0">&quot;json&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; success<span class="sy0">:</span> successFn<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; error<span class="sy0">:</span> errorFn<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><br />
<span class="sy0">;</span></p>
<p>&#8230;<br />
$<span class="br0">&#40;</span><span class="st0">&quot;#btnSubmit&quot;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; objPerson.<span class="kw3">Name</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#txtName&#8217;</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; objPerson.<span class="me1">ContactNumber</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#txtContactNumber&#8217;</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; objPerson.<span class="me1">Description</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#txtDescription&#8217;</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; AjaxMethodJSON<span class="br0">&#40;</span><span class="st0">&quot;/webservices/Webservice.asmx/UpdatePerson&quot;</span><span class="sy0">,</span> objPerson<span class="sy0">,</span> AjaxSuccessStep<span class="sy0">,</span> AjaxFailed<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>If you have been paying attention you may be thinking &#8211; stringify? The official explanation from <a href="http://www.json.org/js.html">json.org</a>: If the stringify method sees an object that contains a toJSON method, it calls that method, and stringifies the value returned. This allows an object to determine its own JSON representation. So remember to add a reference to <a href="http://www.json.org/js.html">json2.js</a> upstream from this code.</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> AjaxSuccessStep<span class="br0">&#40;</span>result<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>result <span class="sy0">!=</span> <span class="kw2">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> obj <span class="sy0">=</span> result.<span class="me1">d</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objPerson <span class="sy0">=</span> JSON.<span class="me1">parse</span><span class="br0">&#40;</span>obj<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//got the updated object back, now you can &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span class="co1">//do some more stuff with it</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</div>
<p>There you go. This works very well when you are stepping through a wizard and updating a few fields with each step.</p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/12/03/ajax-using-net-and-jquery-revised-and-improved-with-help-from-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An undocumented selector for jQuery &#8211; Contains Word</title>
		<link>http://daverussell.co.za/wordpress/2009/11/24/an-undocumented-selector-for-jquery-contains-word/</link>
		<comments>http://daverussell.co.za/wordpress/2009/11/24/an-undocumented-selector-for-jquery-contains-word/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 08:17:13 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://davidrussellr.wordpress.com/?p=59</guid>
		<description><![CDATA[Here&#8217;s a useful and as yet undocumented feature of jQuery&#8217;s attribute selector, the contains word feature &#8211; here&#8217;s how it works: suppose you want to select a series of elements based on a class or rel or whatever. In this case I want to select all the links with the class .mylinks &#8211; but only [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a useful and as yet undocumented feature of jQuery&#8217;s attribute selector, the contains word feature &#8211; here&#8217;s how it works:</p>
<p>suppose you want to select a series of elements based on a class or rel or whatever. In this case I want to select all the links with the class .mylinks &#8211; but only those with the rel containing &#8216;something&#8217;:</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;something else&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>this is a link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;thething other&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>this is a link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;something more&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>this is a link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;something up&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>this is a link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;nothing down&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>this is a link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;</span></div>
</div>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> charset<span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span><span class="sy0">&gt;</span><br />
$<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="co1">//contains word</span><br />
$<span class="br0">&#40;</span><span class="st0">&#8216;.mylinks[rel~=something]&#8216;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;foundyou&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//note the important selector: ~=</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/11/24/an-undocumented-selector-for-jquery-contains-word/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using jQuery to check if all radio buttons have been checked</title>
		<link>http://daverussell.co.za/wordpress/2009/11/17/using-jquery-to-check-if-all-radio-buttons-have-been-checked/</link>
		<comments>http://daverussell.co.za/wordpress/2009/11/17/using-jquery-to-check-if-all-radio-buttons-have-been-checked/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 12:19:40 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://davidrussellr.wordpress.com/?p=53</guid>
		<description><![CDATA[If you find yourself needing to check if all radio button groups have been checked try this dead simple solution made possible by jQuery: $&#40;document&#41;.ready&#40;function&#40;&#41; &#123; if &#40;$&#40;&#8216;:checked&#8217;&#41;.length != 5&#41; &#123; alert&#40;&#8216;Please answer all the questions..&#8217;&#41;; return false; &#125; &#125;&#41;;]]></description>
			<content:encoded><![CDATA[<p>If you find yourself needing to check if all radio button groups have been checked try this dead simple solution made possible by jQuery:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">&#8216;:checked&#8217;</span><span class="br0">&#41;</span>.<span class="me1">length</span> <span class="sy0">!=</span> 5<span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">&#8216;Please answer all the questions..&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/11/17/using-jquery-to-check-if-all-radio-buttons-have-been-checked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

