Как правильно посчитать цену на Jquery? [требует правки]

336
23 декабря 2016, 15:24

Почему считает неправильно? И как сделать чтоб считало точно? В приведенном ниже примере умножьте на 2, и получится 10.20 а должно 10 //parseInt - обрезает цену после запятой //Math. - округляет, а мне не нужно округлять. Как подсчитать точную стоимость?

$(document).ready(function() { 
  $(".price-all").on("input", function() { 
    var n1 = $('#order-fld-1').val(); 
    var n2 = $('#order-fld-2').val(); 
    var n3 = $('#order-fld-3').val(); 
    var result = (Number(n1) + Number(n2)) * Number(n3); 
    if ($.isNumeric(result)) { 
      $('#sum1').val(result.toFixed(2)); 
      $('#result').html(result.toFixed(2)); 
    } 
  }); 
});
#result{ 
  width: 150px; 
  height: 50px; 
  background: #e8a5e8; 
  font-size: 34px; 
  padding: 10px; 
  margin-top: 10px; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
( <input type="text" class="price-all" id="order-fld-1" value="2.33" size="1"/> +  
<input type="text" class="price-all" id="order-fld-2" value="2.77" size="1"/> ) 
* <input type="text" class="price-all" id="order-fld-3" value="" size="1"/> 
<div id="result"></div> 
<input type="hidden" id="sum1" />

Answer 1

$(document).ready(function() { 
  $(".price-all").on("input", function() { 
    var n1 = $('#order-fld-1').val(); 
    var n2 = $('#order-fld-2').val(); 
    var n3 = $('#order-fld-3').val(); 
    if(/[0-9.]+/.exec(n1) == null){n1 = 0}; // Проверка на существование 
    if(/[0-9.]+/.exec(n2) == null){n2 = 0}; // Проверка на существование 
    if(/[0-9.]+/.exec(n3) == null){n3 = 1}; // Проверка на существование 
    var result = (Number(n1) + Number(n2)) * Number(n3); 
    if ($.isNumeric(result)) { 
      $('#sum1').val(result.toFixed(2)); 
      $('#result').html(result.toFixed(2)); 
    } 
  }); 
});
#result{ 
  width: 150px; 
  height: 50px; 
  background: #e8a5e8; 
  font-size: 34px; 
  padding: 10px; 
  margin-top: 10px; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
( <input type="text" class="price-all" id="order-fld-1" value="2.33" size="1"/> +  
<input type="text" class="price-all" id="order-fld-2" value="2.77" size="1"/> ) 
* <input type="text" class="price-all" id="order-fld-3" value="" size="1"/> 
<div id="result"></div> 
<input type="hidden" id="sum1" />

READ ALSO
Получить значение по клику? [требует правки]

Получить значение по клику? [требует правки]

Есть сторонняя библиотекаВот сылка на демо и мануал

298
Динамическая подгрузка файлов Jquery

Динамическая подгрузка файлов Jquery

Подскажите как вот это реализовать с помощью

291