Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2013, 14:09
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

сумма отмеченых чекбоксов
Здравствуйте, уважаемые форумчане, помогите пожалуйста разобраться с задачей, есть форма в которой отмечаются условия размещения объявления, там есть селект показывающий колличество месяцев и чекбоксы показывающие дополнительные рекламные опции, стоимость дополнительной опции за месяц- это значение чекбокса.
Стоимость размещения обявления в месяц без дополнительных опций 1 грн в месяц.
<p><label>Период размещения</label>&nbsp;&nbsp;
<select id="period" name="period">
<option value="0" disabled>Выберите период размещения</option>
<option value="1"selected="selected">1 месяц</option>
<option value="3">3 месяца</option>
<option value="6">6 месяцев</option>
<option value="9">9 месяцев</option>
<option value="12">1 год</option>
</select>
&nbsp;&nbsp;	Стоимость Вашего объявления составляет <span style="font-weight:bold"></span></p>
<p>Вы можете воспользоваться дополнительными рекламными опциями для продвижения своего товара</p>

<input type="checkbox" name="bold_label" value="3" class="add_check"><label class="text">Жирный заголовок</label><br>

<input type="checkbox" name="light"value="8"class="add_check"><label class="text">Подсветка</label><br>

<input type="checkbox" name="start"value="14"class="add_check"><label class="text">Начало списка</label><br>

<input type="checkbox" name="category_page"value="25"class="add_check"><label class="text">Страница категории</label><br>

<input type="checkbox" name="main_page"value="59"class="add_check"><label class="text">Главная страница Пинокио</label><br>

Как сделать так чтобы в (.name_good_area p span) отображалась сумма (значений выбранных чекбоксов умноженных на колличество месяцев) то есть например клиент выбирает период размещения 3 месяца, и как дополнительные опции начало списка и страница категории, необходимо чтобы отобразилось такое число == (стоимость объявления 1 грн в месяц * на 3 месяца )+(стоимость дополнительной опции начало списка == 14 грн * 3месяца)+(стоимость дополнительной опции страница категории == 25грн*3 месяца)=120грн. Пробовал написать сам логики математической не хватает, помогите кто может
<script>
var period=$('#period').val();
$('.name_good_area p span').text(' '+period*1+' грн.');
$('#period').change(function(){
$('.name_good_area p span').text(' '+period*1+' грн.');
});

$('.add_check').change(function(){
if ($(this).prop("checked")){
var add_check = $(this). val();
var add_check_period = parseInt(add_check)*parseInt(period);
var add_check_period_plus_period = parseInt(add_check_period)+parseInt(period);
$('.name_good_area p span').text(' '+add_check_period_plus_period+' грн.');
}
});
</script>
Это выдает только значение выбранного одного чекбокса + стоимость объявления в месяц
Для наглядности предпоследний раздел формы стоимость объявления http://pinokio.in.ua/pages/show/sale

Последний раз редактировалось imediasun1, 22.07.2013 в 14:19.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2013, 14:43
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

<p><label>Период размещения</label>&nbsp;&nbsp;
<select id="period" name="period">
<option value="0" disabled>Выберите период размещения</option>
<option value="1"selected="selected">1 месяц</option>
<option value="3">3 месяца</option>
<option value="6">6 месяцев</option>
<option value="9">9 месяцев</option>
<option value="12">1 год</option>
</select>
&nbsp;&nbsp;  Стоимость Вашего объявления составляет <span id="total_sum" style="font-weight:bold"></span></p>
<p>Вы можете воспользоваться дополнительными рекламными опциями для продвижения своего товара</p>

<input type="checkbox" name="bold_label" value="3" class="add_check"><label class="text">Жирный заголовок</label><br>

<input type="checkbox" name="light"value="8" class="add_check"><label class="text">Подсветка</label><br>

<input type="checkbox" name="start"value="14" class="add_check"><label class="text">Начало списка</label><br>

<input type="checkbox" name="category_page"value="25" class="add_check"><label class="text">Страница категории</label><br>

<input type="checkbox" name="main_page"value="59" class="add_check"><label class="text">Главная страница Пинокио</label><br>


$(function(){
  var period=$('#period').val();
  var total_sum = period*1;
  $('#total_sum').text(' '+total_sum+' грн.');
  $('.add_check:checked').each(function(){
      sumary(this, $(this).val() )
  })

  $('#period').change(function(){
    period = $(this).val();
    total_sum = period*1;

    $('.add_check:checked').each(function(){
      sumary(this, $(this).val() )
    })

    $('#total_sum').text(' '+total_sum+' грн.');
  });


  $('.add_check').change(function(){
    sumary(this, $(this).val() )
  });

  function sumary(_this, val){
      add_check_period = parseInt(val)*parseInt(period);
      if ( $(_this).is(":checked") ){
        total_sum = add_check_period + total_sum
      } else {
        total_sum = total_sum - add_check_period
      }

      $('#total_sum').text(' '+total_sum+' грн.');
  }
})
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2013, 16:37
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Спасибо большое, все работает
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2013, 17:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

imediasun1,
Вариант покороче ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<p><label>Период размещения</label>&nbsp;&nbsp;
<select id="period" name="period">
<option value="0" disabled>Выберите период размещения</option>
<option value="1"selected="selected">1 месяц</option>
<option value="3">3 месяца</option>
<option value="6">6 месяцев</option>
<option value="9">9 месяцев</option>
<option value="12">1 год</option>
</select>
&nbsp;&nbsp;	Стоимость Вашего объявления составляет <span style="font-weight:bold"></span></p>
<p>Вы можете воспользоваться дополнительными рекламными опциями для продвижения своего товара</p>

<input type="checkbox" name="bold_label" value="3" class="add_check"><label class="text">Жирный заголовок</label><br>

<input type="checkbox" name="light"value="8"class="add_check"><label class="text">Подсветка</label><br>

<input type="checkbox" name="start"value="14"class="add_check"><label class="text">Начало списка</label><br>

<input type="checkbox" name="category_page"value="25"class="add_check"><label class="text">Страница категории</label><br>

<input type="checkbox" name="main_page"value="59"class="add_check"><label class="text">Главная страница Пинокио</label><br>
<script>
$("#period, .add_check").change(function () {
    var b = $("#period").val() | 0,
        a = 1;
    $(".add_check:checked").each(function () {
        a += $(this).val() | 0
    });
    $("span").html(a * b + " \u0433\u0440\u043d")
});
$('#period').change()
</script>
</body>
</html>

Последний раз редактировалось рони, 06.06.2021 в 11:19.
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2013, 20:15
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

убил пол часа разбираясь как работает подразрядное или)
выходит в данном случае | 0 выступает заменой parseInt

рони, а это чтоб писать меньше или есть ещё какие-то отличия?
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2013, 20:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от animhotep
это чтоб писать меньше или есть ещё какие-то отличия?
в данном случае одинаково
Ответить с цитированием
  #7 (permalink)  
Старый 22.07.2013, 21:04
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

ясно, спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько чекбоксов Зосимов jQuery 3 01.07.2013 14:01
Чекбокс (переключатель группы чекбоксов) DVNSA Общие вопросы Javascript 6 15.08.2011 14:38
Получить все val() отмеченых чекбоксов ART-DELI jQuery 2 28.04.2011 13:33
Выделить группу чекбоксов. В группе может быть только один чекбокс. JooZ Элементы интерфейса 2 23.12.2009 19:28
jquery validator и массивы чекбоксов ekkl jQuery 1 16.10.2009 16:26