用jquery格式化钱

时间:2011-03-08 20:47:37

标签: javascript jquery

我写了这个应该格式化钱的小片段,但由于某种原因它在这段时间内失败了。它每次都不断添加它们......任何想法为什么并且有更好的方法来做到这一点

$(".dollar").blur(function() {
    var curval = $(this).val(); 
    if ($(this).val().indexOf("$") != 0) {
        $(this).val("$" + $(this).val());
    } 
    if ($(this).val().indexOf(".") != 0){
        $(this).val($(this).val() + ".00");
    }
});

3 个答案:

答案 0 :(得分:5)

我写了一个不同的美元格式代码段,它将采用任意数字(1,1.6,2.52,8.2472)并自动将其格式化为美元符号($ 1.00,$ 1.60,$ 2.52,$ 8.24):

$('.dollars').blur(function(e){
    var curVal = parseFloat($(this).val()),
        curInt = parseInt(curVal, 10),
        curDec = parseInt(curVal*100, 10) - parseInt(curInt*100, 10);

    curDec = (curDec < 10) ? "0" + curDec : curDec;

    if (!isNaN(curInt) && !isNaN(curDec)) {
        $(this).val("$"+curInt+"."+curDec);
    }
});

See it in action here.

答案 1 :(得分:3)

您可以查看jquery globalization plugin

答案 2 :(得分:2)

“indexOf”函数将索引返回到字符串中。我认为你应该进行测试,看看结果是否小于零。

if ($(this).val().indexOf("$") < 0) {
    $(this).val("$" + $(this).val());
} 
if ($(this).val().indexOf(".") < 0){
    $(this).val($(this).val() + ".00");

编辑 oops - 我倒退了:-)小于零,不大于或等于。后者是你要做的,以确定字符串中的字符,但是你的代码需要知道字符串中不是的时间。