Изменять value при нажатие checkbox

185
21 мая 2018, 20:40



Вкратце..
Задумка такая:
Есть поле с числом, и несколько чекбоксов с процентом.
При первом нажатие на чекбокс, нужно прибавить процент к числу в поле, при втором нажатии вернуть исходное значение (по факту отнять процент).

Написал вот такое вот, но оно косячит только в путь.

Помогите заставить это работать.

$('input[type="checkbox"]').on('click', function() { 
  var PCTthis = parseFloat($(this).val()); 
  var price = parseFloat($('input[name="price"]').val()); 
 
  if($(this).prop('checked')) 
    var pricePCT = ((price * PCTthis / 100) + price); 
  else 
    var pricePCT = ((price * PCTthis / 100) - price); 
  $('input[name="price"]').val(pricePCT); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script> 
 
 
<input type="text" name="price" value="100" readonly> 
<br> 
<input id="f1" type="checkbox" name="f1" value="10"> 
<label for="f1">10%</label> 
<br> 
<input id="f2" type="checkbox" name="f2" value="20"> 
<label for="f1">20%</label> 
<br> 
<input id="f2" type="checkbox" name="f2" value="30"> 
<label for="f1">30%</label>

Answer 1

$('input[type="checkbox"]').on('click', function() { 
  var PCTthis = parseFloat($(this).val()); 
  var price = parseFloat($('input[name="price"]').val()); 
 
  if($(this).prop('checked')) 
    var pricePCT = price * (1 + PCTthis / 100); 
  else 
    var pricePCT = price / (1 + PCTthis / 100); 
  $('input[name="price"]').val(pricePCT.toFixed(0)); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script> 
 
 
<input type="text" name="price" value="100" readonly> 
<br> 
<input id="f1" type="checkbox" name="f1" value="10"> 
<label for="f1">10%</label> 
<br> 
<input id="f2" type="checkbox" name="f2" value="20"> 
<label for="f1">20%</label> 
<br> 
<input id="f2" type="checkbox" name="f2" value="30"> 
<label for="f1">30%</label>

READ ALSO
Считывание файлов из INPUT с помощью JQ

Считывание файлов из INPUT с помощью JQ

Вопрос из темы конченная наркомания, но прошу понять и простить

189
Использование data() [дубликат]

Использование data() [дубликат]

На данный вопрос уже ответили:

175
Корректный запуск программы

Корректный запуск программы

Подскажите пожалуйста, как исправить следующую ситуацию: когда я запускаю программу (форму1), на которой расположено около 50 различных контролов...

177
C# OpenFileDialog и SaveFileDialog не открывается

C# OpenFileDialog и SaveFileDialog не открывается

Не могу понять, на Window 7 диалоговое окно выбора фала для загрузки, или аналогичное окно выбора файла для сохранения, открывается нормальноНа...

237