2014-11-14 153 views
1

我試圖創建一個腳本,從幾個selectboxes獲取一些值,然後與他們做一些數學運算。 問題是腳本需要放置在SaaS環境中,所以我做任何事情的選項都是有限的。下面描述的方法是唯一的方法來做到這一點。jquery計算問題

我面臨的問題是,我可以從選擇框中接收到正確的值,但我無法將它們轉換爲2位小數。此外,我不能得到初始值adviesprijs轉換爲只是例如。 1500而不是1.5或1.500.00。我真的不明白我做錯了什麼。

我創建了一個小提琴here我認爲這最能描述我的問題!

我的腳本

function update_amounts() { 

    var perc = '10' || 0; //this is a value from a Twig tag. Not relevant for question! 
    var korting = ((100-perc)/100); 

    var adviesprijs = '€1.500,00'.replace(/[^\d.]/g, ''); //gives 1.5 or 1.500.00 etc.. 
    var adviesprijsValue = parseFloat(adviesprijs) || 0; 


    var sum = 0.0; 
     $('#product_configure_form .product-configure-custom-option select').each(function() { 
     var optionText = $(this).find('option:selected').text(); 
     var matches = optionText.match(/\(([^)]+)\)/g) || []; 
     if (matches.length > 0) { 
     var priceText = matches[matches.length - 1]; 
      if (priceText.indexOf("€") > -1) { 
      var priceClean = priceText.replace(/[^0-9\+\-\.\,]/g, ''); 
      var priceValue = parseFloat(priceClean) || 0; 

      sum += priceValue; 
      } 
     } 
     }); 
        var sum2 = sum+adviesprijsValue; 

        var sumBtw = (sum2*1.21).toFixed(2); 
        $('#amount').text('€' +sum2);// 
        $('#amountBtw').html('(€'+sumBtw+' - Incl. 21% BTW)');//.toFixed(2) 
       } 

       $(document).ready(function(){ 
        $("#product_configure_form").on("change", ".product-configure-custom-option select", update_amounts); 
       }); 

的HTML是相當長所以最好是看看小提琴。 任何人都可以幫助我做出正確的計算......?!

Thx預先

回答

1

您從荷蘭語格式化到正常浮動格式的轉換不正確。

考慮使用:

.replace(/[^\d,]/g,"").replace(",",".") 

工作例如:http://jsfiddle.net/pgaphma3/3/

編輯

中,也允許一個加號或減號使用/[^\d,\-+]/g

+0

Tuurlijk ....! Thx對於你的回答很有意義...... – Meules 2014-11-15 23:01:29