У меня есть флажок, который пользователи могут выбрать для добавления функций. Мне нужно, чтобы каждое значение ввода добавлялось к сумме, которая должна быть представлена в разделе # payment-total и # payment-rebill. По сути, если они выбирают два из флажков, # payment-total и # payment-rebill будут = 100. Я могу получить первый номер, чтобы добавить/изменить, но также не удалось изменить # payment-rebill.javascript add checkbox-checked значения
Вот мой HTML:
<section id="extra-features">
<label class="header">Extra Features ($50/month): </label><br><br>
<div class="span3">
<label class="checkbox" for="Checkbox1">
<input value="50" type="checkbox" id="Checkbox1" value="option1" data-toggle="checkbox"> Instagram
</label>
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox2" value="option2" data-toggle="checkbox"> Review site monitoring
</label>
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox3" value="option3" data-toggle="checkbox"> Google+
</label>
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox4" value="option4" data-toggle="checkbox"> LinkedIn
</label>
</div>
<div class="span3">
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox5" value="option5" data-toggle="checkbox"> Pinterest
</label>
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox6" value="option6" data-toggle="checkbox"> FourSquare
</label>
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox7" value="option7" data-toggle="checkbox"> Tumblr
</label>
<label class="checkbox">
<input value="50" type="checkbox" id="Checkbox8" value="option8" data-toggle="checkbox"> Advertising
</label>
</div>
</section>
<div class="card-charge-info">
Your card will be charged $<span id="payment-total">0</span> now, and your subscription will bill $<span id="payment-rebill">0</span> every month thereafter. You can cancel or change plans anytime.
</div>
Моя JavaScript:
var inputs = document.getElementsByClassName('sum'),
total = document.getElementById('payment-total');
total1 = document.getElementById('payment-billed');
for (var i=0; i < inputs.length; i++) {
inputs[i].onchange = function() {
var add = this.value * (this.checked ? 1 : -1);
total.innerHTML = parseFloat(total.innerHTML) + add
total1.innerHTML = parseFloat(total1.innerHTML) + add
}
}
Вот мой jsfiddle: http://jsfiddle.net/rynslmns/6NJ8e/10/
Единственная проблема заключается в том, что всякий раз, когда пользователь снимает флажок и перепроверяет, он начинает переходить в отрицательные числа. Я добавил ссылку на сайт http://www.thesomii.com/getstarted/prime/ –
Хмм, вы можете получить скрипку, которая имеет эту проблему? Возможно, вы случайно измените значение флажка на -50 или что-то в этом роде. – hassassin
http://jsfiddle.net/rynslmns/uZbee/ сначала выберите срок выставления счетов, затем проверьте все опции в дополнительных функциях, затем выберите пункт выписки из окна выбора, а затем снимите флажки. вы начинаете получать отрицательные числа. –