2014-08-27 39 views
2

請看一看這個http://jsfiddle.net/F2wEK/4/如何使使自動求和計算輸入字段

HTML

cost 1 :<input type="text" class="cost" name="cost1" /><br /> 
cost 2 :<input type="text" class="cost" name="cost2" /><br /> 
cost 3 :<input type="text" class="cost" name="cost3" /><br /> 
cost 4 :<input type="text" class="cost" name="cost4" /><br /><br /> 
sum : <input type="text" id="sum" readonly /> 

的Javascript

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

     function calculateSum(){ 
      var sum=0; 
      $(".cost").each(
      function(){ 
       var vl = this.value.replace(',',''); 
       if(!isNaN(vl) && vl.length!=0){ 
        sum+=parseFloat(vl); 
        } 
       }); 

      $("#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; 

} 

爲什麼不能自動如果我輸入100000,1000000,10000000,更大......,總和?如何使它與千,百萬或十億的數字一起工作?請幫幫我..

+0

看起來它是工作,我... – RichardBernards 2014-08-27 08:29:54

+0

如果我是(例如)100000 1000000 10000000之間或更大的每個輸入字段中輸入它不工作比那.. – kroseva 2014-08-27 08:31:26

回答

2

問題是你的替換函數,它只取代第一個','不是全部。在你calculateSum()功能你這樣做:

var vl = this.value.replace(',', ''); 

我提議

var vl = this.value.split(',').join(''); 

代替。或使用RegExp','喜歡這裏:

var myExp = /,/g; 
var vl = this.value.replace(myExp, ''); 

嘗試它工作正常,我的fiddle

+0

這就是我想要:)謝謝alexvii(你是搖滾) – kroseva 2014-08-27 08:41:37

1

更改替換功能。它取代了逗號只有第一次出現:

var vl = this.value.replace(/,/g, '');