input currency
This will add the input currency mark in front of the amount entered. It will also format the currency.
HTML
<input type="text" value="Enter Amount" title="Enter Amount" placeholder="Enter Amount" data-currency="USD" />
JavaScript
(function($){
$.fn.currencyFormatter = function(){
this.each(function(i,l){
var $l = $(l), currency;
switch($l.data("currency")){
default: currency = {
symbol: "$",
round: 2,
decicmal:".",
thousands: ","
}
break;
}
$l.focus(function(){
if($l.val() == $l.attr("title")){
$l.val("");
}
}).blur(function(){
if($l.val() == "$0.00" || $l.val() === ""){
$l.val($l.attr("title"));
}
}).change(function(){
var val = $l.val().replace(/[^0-9\-\.]/g,""),
sign = "",
sval = val.split(".");
if(sval.length > 2)
sval[0] = val.substring(0,val.length - val[sval.length-1].length);
if(sval.length < 2){
sval[1] = "00";
}
var i = sval[0];
if(sign == "-"){
i = i.substr(1);
sign = "-";
}
decimal = sval[sval.length-1];
while(decimal.length < currency.round)
decimal += "0";
if((parseInt(decimal[currency.round]) < 5))
{
decimal = decimal.substr(0, currency.round);
}else{
while(decimal.length > currency.round){
if((parseInt(decimal[decimal.length-1]) < 5))
{
decimal = decimal.substr(0, decimal.length-2);
}else{
var rounded = parseInt(decimal[decimal.length-2]);
rounded++;
decimal = decimal.substr(0, decimal.length-2) + rounded;
...