如何使用货币格式自动汇总输入字段

时间:2013-06-21 13:57:57

标签: javascript jquery currency

我需要将输入字段与货币格式相加到总输入。当它是唯一的数字时,我可以使它工作。这是我的小提琴:http://jsfiddle.net/nobuts/F2wEK/2/

onKeyUp自动逗号功能正常工作但不能再对这些数字求和。 这是我的JS:

$(document).ready(function(){
$(".cost").each(
    function(){
    $(this).keyup(
        function(){
        calculateSum()
            });
        });
    });

    function calculateSum(){
        var sum=0;
        $(".cost").each(
        function(){
            if(!isNaN(this.value)&&this.value.length!=0){
                sum+=parseFloat(this.value);
                }
            });             
        $("#sum").val(sum.toFixed(2));
        }
$(document).ready(function(){
  $('input.cost').keyup(function(event){
  // skip for arrow keys
  if(event.which >= 37 && event.which <= 40){
  event.preventDefault();
  }
  var $this = $(this);
  var num = $this.val().replace(/,/gi, "").split("").reverse().join("");

  var num2 = RemoveRougeChar(num.replace(/(.
3})/g,"$1,").split("").reverse().join(""));     
  console.log(num2);


  // the following line has been simplified. Revision history contains original.
  $this.val(num2);  
});});
function RemoveRougeChar(convertString){   

if(convertString.substring(0,1) == ","){

    return convertString.substring(1, convertString.length)            

}
return convertString;
}

如果你们小提琴回复,我们将不胜感激。

2 个答案:

答案 0 :(得分:2)

您需要删除号码中的逗号,以便isNaN()将其识别为数字,因此,请替换以下代码:

        if(!isNaN(this.value)&&this.value.length!=0){
            sum+=parseFloat(this.value);
        }

这个:

            var vl = this.value.replace(',','');
            if(!isNaN(vl) && vl.length!=0){
                sum+=parseFloat(vl);
            }

请参阅working fiddle

答案 1 :(得分:1)