2012-05-16 6 views
0

Простите меня, если я сработал с точки зрения правильного именования вещей.Подсчитайте раскрывающийся список цен

У меня есть несколько выпадающих списков, вычисляющих цены после каждого выбора, в конце всех списков у меня есть общая сумма, которая была добавлена ​​каждый раз, но я хочу, чтобы последний раскрывающийся список уменьшал общую сумму на a% не добавляет к нему.

Цены приходят из MySQL и так будет скидка, вот код, я использую, чтобы получить цены

$(function(){ 
    $(".calculate").on("change", function(){ 
     var total = 0; 
     $('.calculate').each(function() { 
      if($(this).val() != 0) { 
       total += parseFloat($(this).val()); 
      } 
     }); 
     $('#total').text('£' + total.toFixed(2)); 
    }); 

});//]]> 

Я думал, что это будет что-то делать с total += parseFloat($(this).val());. Я подумал, заменив + на /, это сработало бы, но ничего?

Благодаря

ответ

0

Прежде всего я снимите calculate класс из <select>, который собирается сделать скидку, и назначить ему id="discount", приведен пример <select>:

<select id="discount" name="select-3"> 
    <option value="0">Select Discount Amount</option> 
    <option value="10%">10%</option> 
    <option value="20%">20%</option> 
    <option value="50%">50%</option> 
</select> 

Тогда, когда либо #discount, или любой из .calculate элементов изменяются, в первую петлю и добавить итоги всех элементов с классом calculate, перед применением скидки, например, так:

$(function(){ 
    $(".calculate, #discount").on("change", function(){ 
     var total = 0; 
     $('.calculate').each(function() { 
      if($(this).val() != 0) { 
       total += parseFloat($(this).val()); 
      } 
     }); 
     if($('#discount').val() != 0) { 
      total = total * ((100 - parseFloat($('#discount').val()))/100); 
     } 
     $('#total').text('£' + total.toFixed(2)); 
    }); 
}); 

Вот fiddle

+0

Еще раз deifwud, вы сделали это снова, он работает идеально, всего еще 2 части, и он закончен. –

+0

Привет, Deifwud, я не уверен, что вы видели мой новый вопрос, но после вашей помощи с моими последними 2 вопросами я прыгаю, вы можете это закончить. Я хочу добавить сумму НДС и общую сумму (total + VAT =) также, на данный момент, если у меня есть несколько списков выбора, это не изменит цену, если я выберу 2 или более. Как только у меня есть эти 2 части, я закончен иначе, чем пытаюсь найти красиво выглядящий выпадающий список с флажками (для тех нескольких вариантов, которые невозможно найти) –

0

Что-то вроде этого, может быть:

$(function(){ 
    $(".calculate").on("change", function(){ 
     var total = 0; 
     var discount_amount = define_value; 
     $('.calculate').each(function() { 
      if($(this).val() != 0) { 
       discount_amount = $(this).val() * discount_variable; 
       line_total = $(this).val() - discount_amount; 
       total += parseFloat(line_total); 
      } 
     }); 
     $('#total').text('£' + total.toFixed(2)); 
}); 

});//]]> 
Смежные вопросы