2

通貨形式の入力フィールドを総入力に合計する必要があります。数字だけだとうまくいきます。これが私のフィドルです: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;
}

フィドルで返信していただければ幸いです。

4

2 に答える 2

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);
            }

作業フィドルを参照してください

于 2013-06-21T14:22:49.263 に答える