<?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>Aria Rajasa's Blog &#187; JQuery</title>
	<atom:link href="http://rajasa.com/blog/category/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://rajasa.com/blog</link>
	<description>Thoughts about web design, remote working, life, and things that more or less move :P</description>
	<lastBuildDate>Mon, 02 Nov 2009 22:42:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Live number format in Web App</title>
		<link>http://rajasa.com/blog/2008/09/03/live-number-format-in-web-app/</link>
		<comments>http://rajasa.com/blog/2008/09/03/live-number-format-in-web-app/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:26:50 +0000</pubDate>
		<dc:creator>Kuy</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Lesson Learned]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rajasa.com/blog/?p=323</guid>
		<description><![CDATA[I was having problems with displaying money format (Rp. 1.000.000,- and not 1000000) in a form field and came up with this solution:
 

Made using jquery   Ideally, it would be better if the input field displays the formatted number directly and if clicked, then it shows the unformatted number for editing like what [...]]]></description>
			<content:encoded><![CDATA[<p>I was having problems with displaying money format (Rp. 1.000.000,- and not 1000000) in a form field and came up with this solution:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="470" height="260"><param name="movie" value="http://content.screencast.com/users/rajasa/folders/Jing/media/0a5d512b-11c1-459e-b38b-71fe199f6f66/bootstrap.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/users/rajasa/folders/Jing/media/0a5d512b-11c1-459e-b38b-71fe199f6f66/FirstFrame.jpg&#038;content=http://content.screencast.com/users/rajasa/folders/Jing/media/0a5d512b-11c1-459e-b38b-71fe199f6f66/00000002.swf&#038;width=470&#038;height=260"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param> <embed src="http://content.screencast.com/users/rajasa/folders/Jing/media/0a5d512b-11c1-459e-b38b-71fe199f6f66/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="470" height="260" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/rajasa/folders/Jing/media/0a5d512b-11c1-459e-b38b-71fe199f6f66/FirstFrame.jpg&#038;content=http://content.screencast.com/users/rajasa/folders/Jing/media/0a5d512b-11c1-459e-b38b-71fe199f6f66/00000002.swf&#038;width=470&#038;height=260" allowFullScreen="true" scale="showall"></embed></object></p>
<p><span id="more-323"></span></p>
<p>Made using jquery <img src='http://rajasa.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Ideally, it would be better if the input field displays the formatted number directly and if clicked, then it shows the unformatted number for editing like what we usually see in most spreadsheet. Anybody knows how to do something like that?</p>
<p><b>Updated</b><br />
Nevermind, I did it with this simple jquery codes:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p323code5'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3235"><td class="code" id="p323code5"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">numberformat</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>	
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input.numberformat&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> stripToMoney<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>		
		<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> DecimalAsString<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span>;</pre></td></tr></table></div>

<p>This is as simple as formatting the numbers on blur (out from focus) so that it would look formatted when your cursor are not in that field, and strip the input field from dots (.), comma (,) and strip (-) when the cursor are in the field. Here&#8217;s the code for striping the format:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p323code6'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3236"><td class="code" id="p323code6"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> stripToMoney<span style="color: #009900;">&#40;</span>words<span style="color: #339933;">,</span>character<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> spaces <span style="color: #339933;">=</span> words.<span style="color: #660066;">length</span>;
	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span>; x<span style="color: #339933;">&lt;</span>spaces ; <span style="color: #339933;">++</span>x<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		words <span style="color: #339933;">=</span> words.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;-&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>;
		words <span style="color: #339933;">=</span> words.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>;
		words <span style="color: #339933;">=</span> words.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;,&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">return</span> words;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>And here&#8217;s the one to format the number into groups of 3 and separate it with a dot (.), something like (1.000.000):</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p323code7'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3237"><td class="code" id="p323code7"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> DecimalAsString<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> parseFloat<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span>;
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isNaN<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> i <span style="color: #339933;">=</span> 0; <span style="color: #009900;">&#125;</span>
	<span style="color: #003366; font-weight: bold;">var</span> minus <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span>;
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">&lt;</span> 0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> minus <span style="color: #339933;">=</span> <span style="color: #3366CC;">'-'</span>; <span style="color: #009900;">&#125;</span>
	i <span style="color: #339933;">=</span> Math.<span style="color: #660066;">abs</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>;
	i <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">+</span> .005<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span>;
	i <span style="color: #339933;">=</span> i <span style="color: #339933;">/</span> <span style="color: #CC0000;">100</span>;
	s <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> String<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>;
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>s.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> 0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> s <span style="color: #339933;">+=</span> <span style="color: #3366CC;">',-'</span>; <span style="color: #009900;">&#125;</span>
	s <span style="color: #339933;">=</span> minus <span style="color: #339933;">+</span> s;
	<span style="color: #000066; font-weight: bold;">return</span> FormatNumberBy3<span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> FormatNumberBy3<span style="color: #009900;">&#40;</span>num<span style="color: #339933;">,</span> decpoint<span style="color: #339933;">,</span> sep<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// check for missing parameters and use defaults if so</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>arguments.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    sep <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;.&quot;</span>;
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>arguments.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    sep <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;.&quot;</span>;
    decpoint <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;,&quot;</span>;
  <span style="color: #009900;">&#125;</span>
  <span style="color: #006600; font-style: italic;">// need a string for operations</span>
  num <span style="color: #339933;">=</span> num.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #006600; font-style: italic;">// separate the whole number and the fraction if possible</span>
  a <span style="color: #339933;">=</span> num.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span>decpoint<span style="color: #009900;">&#41;</span>;
  x <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>0<span style="color: #009900;">&#93;</span>; <span style="color: #006600; font-style: italic;">// decimal</span>
  y <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span>; <span style="color: #006600; font-style: italic;">// fraction</span>
  z <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span>;
&nbsp;
&nbsp;
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// reverse the digits. regexp works from left to right.</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span>x.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span>;i<span style="color: #339933;">&gt;=</span>0;i<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
      z <span style="color: #339933;">+=</span> x.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>;
    <span style="color: #006600; font-style: italic;">// add seperators. but undo the trailing one, if there</span>
    z <span style="color: #339933;">=</span> z.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/(\d{3})/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;$1&quot;</span> <span style="color: #339933;">+</span> sep<span style="color: #009900;">&#41;</span>;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>z.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>sep.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> sep<span style="color: #009900;">&#41;</span>
      z <span style="color: #339933;">=</span> z.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span>0<span style="color: #339933;">,</span> <span style="color: #339933;">-</span>sep.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span>;
    x <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span>;
    <span style="color: #006600; font-style: italic;">// reverse again to get back the number</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span>z.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span>;i<span style="color: #339933;">&gt;=</span>0;i<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
      x <span style="color: #339933;">+=</span> z.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>;
    <span style="color: #006600; font-style: italic;">// add the fraction back in, if it was there</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>y<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;undefined&quot;</span> <span style="color: #339933;">&amp;&amp;</span> y.<span style="color: #660066;">length</span> <span style="color: #339933;">&gt;</span> 0<span style="color: #009900;">&#41;</span>
      x <span style="color: #339933;">+=</span> decpoint <span style="color: #339933;">+</span> y;
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">return</span> x;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
And of course, don&#8217;t forget to run the function on document.ready</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p323code8'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3238"><td class="code" id="p323code8"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	numberformat<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input.numberformat&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setValue</span><span style="color: #009900;">&#40;</span>DecimalAsString<span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;		<span style="color: #006600; font-style: italic;">// Apply the decimal as string to all </span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;		
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></td></tr></table></div>

<p>
Enjoy!</spaces></pre>
]]></content:encoded>
			<wfw:commentRss>http://rajasa.com/blog/2008/09/03/live-number-format-in-web-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
