2014-11-14 2 views
1

여러 selectboxes에서 일부 값을 가져온 스크립트를 만든 다음 해당 값을 사용하여 수학을 수행하려고합니다. 문제는 스크립트를 SaaS 환경에 배치해야하므로 제 옵션이 제한적이라는 것입니다. 아래에 설명 된 방법이이를 수행하는 유일한 방법입니다.Jquery 계산 문제

내가 직면 한 문제는 선택 상자에서 올바른 값을받을 수 있지만 2 개의 소수로 변환 할 수 없다는 것입니다. 또한 초기 값 adviesprijs을 예를 들어 변환 할 수 없습니다. 1.5 또는 1.500.00 대신 1500. 나는 내가 뭘 잘못하고 있는지 정말로 볼 수 없다.

나는 바이올린을 만들었습니다 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로 꽤 긴 그래서 가장 잘 바이올린 살펴보고 있습니다. 누구나 정확한 계산을 도와 줄 수 있습니까?!

미리 Thumb in

답변

1

네덜란드어 포맷에서 일반 float 포맷으로 변환하는 것은 올바르지 않습니다.

은 사용을 고려 :

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

근무 예 : http://jsfiddle.net/pgaphma3/3/

편집

플러스 또는 마이너스 기호를 사용 /[^\d,\-+]/g

+0

하고 싶나에게 또한 허용하려면 ....! 너의 대답을위한 Thx는 많은 의미를 가진다. – Meules