金额瓜分

金额分割
/**
* @author tc
* 引入jquery.js
* 引入money.js  charset="utf-8" --        注意引入时指定编码,因为ie6不能自动识别
* <input class="money"/> 默认使用万元格式化,整数位数8,小数位数6
* <input class="money" leftLen="2" rightLen="2"/>整数位数2,小数位数2
* 如果使用struts标签,后面两个属性不能有 class要改成styleClass
* 提交数据还原成数字使用rvalue方法
* */
//格式话金额
function formatValue(s, n)//将数字转换成逗号分隔的样式,保留两位小数s:value,n:小数位数
{
    if(isNaN(s))s=0;
    n = n > 0 && n <= 20 ? n : 6;
    s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
    var l = s.split(".")[0].split("").reverse(),
    r = s.split(".")[1];
    t = "";
    for(i = 0; i < l.length; i ++ )
    {
    t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
    }
    return (t.split("").reverse().join("") + "." + r).replace("-,","-");
}
//还原金额
function rvalue(s)
{
    return parseFloat(s.replace(/[^\d\.-]/g, ""));
}
function clearNoNum(event,obj)
{
//响应鼠标事件,允许左右方向键移动
event = window.event||event;
if(event.keyCode == 37 | event.keyCode == 39){
return;
}
//先把非数字的都替换掉,除了数字和.
if(obj.value.indexOf('-')==0)
obj.value = "-"+obj.value.replace(/[^\d.]/g,"");
else
obj.value =obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
jQuery(function (){
   autoMoney();
})

function fmoney(obj)
{
     var leftLen=obj.attr("leftLen");
var rightLen=obj.attr("rightLen");
if(leftLen==undefined ||isNaN(leftLen)){leftLen=8;}
if(rightLen==undefined ||isNaN(rightLen)){rightLen=6;}
     if(obj.val()=="" || obj.val()==undefined)obj.val("0");
var obj_value=rvalue(obj.val()).toFixed(rightLen);
var index=obj_value.indexOf('.');
if(index==-1)
{
var allLen=obj_value.length;
if(allLen>leftLen)
{
   //obj_value="0";
   alert("金额过大");
}
}else
{
var _ary=obj_value.split('.');
var _len=_ary[0].length;
var _ren=_ary[1].length ;
if(_len>leftLen)
{
   //_ary[0]="0";
   alert("金额过大");
}
if(_ren>rightLen)
   _ary[1]=_ary[1].substring(0,_ren);
obj_value=parseFloat(_ary[0]+"."+_ary[1]);
}
         return formatValue(obj_value,rightLen);
}
function autoMoney()
{
jQuery(".money").each(function (){
jQuery(this).css("text-align","right");
jQuery(this).focus(function (){this.value=rvalue(this.value)});
jQuery(this).blur(function (){this.value=fmoney(jQuery(this))});
jQuery(this).keyup(function (){clearNoNum(event,this)});
             this.value=fmoney(jQuery(this));
})
}