货币字段的Jquery验证

时间:2011-05-16 18:44:21

标签: jquery css

我有一个文本字段,我需要为此进行货币验证。

例如:如果用户输入1999,那么它应该在该文本框中显示1999.00。

如果他进入19.50那么它应该仅仅显示19.50。

这是否可以使用CSS实现?如果是的话,请告诉我该怎么做?

或者为我提供Jquery验证。

1 个答案:

答案 0 :(得分:0)

FormatAsMoney(document.getElementById("yourElementId"), 10000000000, true);

function FormatAsMoney(txtbox, upperlimit, useDecimal) 
{
    nStr = stripComma(txtbox.value);
    txtbox.value = FormatAsMoneyFromString(nStr, upperlimit, useDecimal);
}

function FormatAsMoneyFromString(nStr, upperlimit, useDecimal) {
    if(!isNaN(nStr)&& nStr != "")
    {
        if (upperlimit != null && (nStr * 1) <= upperlimit)
        {
            var amount = nStr * 1;
            nStr = amount.toString();
            nStr += '';
            x = nStr.split('.');
            x1 = x[0];
            x2 = (typeof(x[1]) == 'undefined')?'00':x[1];
            x2 = (x2.length == 1)?x2+'0':x2;
            var rgx = /(\d+)(\d{3})/;
            while (rgx.test(x1)) 
            {
                x1 = x1.replace(rgx, '$1' + ',' + '$2');
            }
            if (useDecimal)
            {
                return  x1 + '.' + x2;
            }
            else
            {
                return x1;
            }
        }
    }

return nStr;
}

function stripComma(money)
{
    var retVal = ""
    if( money != null )
    {
        retVal = money;
        if(retVal.indexOf(',') != -1) // strip the commas
        {
            var strip = retVal.split(',');
            retVal = "";

            for(var y=0;y< parseInt(strip.length);y++)
            {
                retVal += strip[y];
            }

        }
        if(retVal.indexOf(' ') != -1) // strip the spaces
        {
            var strip = retVal.split(' ');
            retVal = "";

            for(var y=0;y< parseInt(strip.length);y++)
            {
                retVal += strip[y];
            }

        }

    }
    return retVal;
} // end stripComma