Поставьте другое имя для флажка и получите значение. Если вы используете одно и то же имя, оно ведет себя как переключатель, поэтому возвращает только одно значение.
<input type="checkbox" name="car1" value="10000" >INVESTMENT ONE
<input type="checkbox" name="car2" value="20000" >INVESTMENT TWO
<input type="checkbox" name="car3" value="30000" >INVESTMENT THREE
А для JS
$("input[name='car1']:checked").val();
$("input[name='car2']:checked").val();
$("input[name='car3']:checked").val();
Для того, что вы делаете, вы хотите перебрать каждый флажок и объединить значения каждого из них. Для этого лучше всего использовать .each()
. Я бы предложил создать переменную Int, а затем, когда вы найдете проверенные элементы, увеличить переменную с новым значением. Затем у вас есть объединенная сумма после цикла.
Рассмотрим следующие улучшения.
$(function() {
function formatNum(n) {
return n.toLocaleString("en");
}
function calcNetTotal() {
var tax = 0,
tax1, tax2, stdDed = 10000;
var inc = parseInt($("#txt-income").val());
$("#txt-income").val(formatNum(inc));
$("#txt-ded").val(formatNum(stdDed));
tax1 = inc - stdDed;
$("#txt-gross-inc").val(formatNum(tax1));
switch (true) {
case (tax1 > 250000 && tax1 <= 500000):
tax = (tax1 - 250000) * 5 / 100;
break;
case (tax1 > 500000 && tax1 <= 1000000):
tax = 12000 + ((tax1 - 500000) * 20 / 100);
break;
case (tax1 > 1000000):
tax = 112000 + ((tax1 - 1000000) * 30 / 100);
break;
}
$("#txt-tax").val(formatNum(tax));
tax2 = tax1 - tax;
$("#txt-net-income-1").val(formatNum(tax2));
$("#txt-net-income-2").val(tax2);
}
function calcTotalIncome() {
if ($("#slct-fee").val() == 0) {
alert("You must select a Fee.");
$("#slct-fee").focus();
return false;
}
var tax4, tax5, tax6;
var ni = parseInt($("#txt-net-income-2").val());
var fee = parseInt($(".fee").val());
var rd = parseInt($("input[name='gender']:checked").val());
var ck = 0;
$("input[name^='car']").each(function(i, el) {
if ($(el).is(":checked")) {
ck = ck + parseInt($(el).val());
}
});
var tax4 = parseInt($("#txt-ag-income").val()) || 0;
var tax5 = parseInt($("#txt-other-income").val()) || 0;
tax6 = fee + rd + ck + ni + tax4 + tax5;
$("#txt-total-income").val(formatNum(tax6));
$("#click3").prop("disabled", false).click(function() {
window.location.href = "getset-index2.html?tax7=" + tax6 + "&tax8=" + ni + "&tax9=" + fee + "&tax10=" + rd;
});
}
$("#calc-net-income").click(calcNetTotal);
$("#txt-income").change(calcNetTotal);
$("#calc-total-income").click(calcTotalIncome);
$("#txt-net-income-2").change(calcTotalIncome);
});
ul {
padding: 7px;
margin: 3px 0;
list-style: none;
border: 1px solid #ccc;
border-radius: 6px;
}
ul li {
padding: 0;
margin: 2px;
}
ul li label {
display: inline-block;
width: 120px;
font-size: 85%;
color: #999;
}
ul li label em {
color: red;
font-style: normal;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Click the button to get a time-based greeting:</p>
<ul>
<li><label><em>INCOME</em>:</label><input type="text" id="txt-income" value=""></li>
<li><label>DEDUCTION:</label><input type="text" id="txt-ded" value="" readonly></li>
<li><label>GROSS INCOME:</label><input type="text" id="txt-gross-inc" value="" readonly></li>
<li><label>TAX:</label><input type="text" id="txt-tax" value="" readonly></li>
<li><label>NET INCOME:</label><input type="text" id="txt-net-income-1" value=""></li>
<li><button id="calc-net-income">CALCULATE NET INCOME</button></li>
</ul>
<ul>
<li><label>NET INCOME:</label><input type="text" id="txt-net-income-2" value="" /></li>
<li><label><em>SELECT FEE</em>:</label>
<select id="slct-fee" class="fee">
<option value="0">Select</option>
<option value="1000">1000</option>
<option value="2000">2000</option>
<option value="3000">3000</option>
</select>
</li>
<li><input type="radio" name="gender" value="1500">1500 FOR MALE</li>
<li><input type="radio" name="gender" value="1000">1000 FOR FEMALE</li>
<li><input type="radio" name="gender" value="500">500 FOR OTHER</li>
<li><input type="checkbox" name="car[]" value="10000">INVESTMENT ONE</li>
<li><input type="checkbox" name="car[]" value="20000">INVESTMENT TWO</li>
<li><input type="checkbox" name="car[]" value="30000">INVESTMENT THREE</li>
<li><label>AGRI INCOME:</label><input type="text" id="txt-ag-income" value=""></li>
<li><label>OTHER SOURCE:</label><input type="text" id="txt-other-income" value=""></li>
<li><label>TOTAL INCOME:</label><input type="text" id="txt-total-income" value=""></li>
<li><button id="calc-total-income">CALCULATE TOTAL INCOME</button></li>
</ul>
<button id="click3" disabled="true">Next</button>
<p id="demo"></p>
Надежда, которая помогает.
Вы можете сделать это и использовать событие click, чтобы получить значение флажка:
HTML
<input type="checkbox" name="car1" value="10000" >INVESTMENT ONE
<input type="checkbox" name="car1" value="20000" >INVESTMENT TWO
<input type="checkbox" name="car1" value="30000" >INVESTMENT THREE
jQuery
$("input[name='car1']").click(function (e) {
if ($(this).is(':checked')) {
alert($(this).val());
}
});
Вот мой jsfiddle
https://jsfiddle.net/kb59s0ph/1/
Или вы можете сделать цикл:
$("input[name='car1']").click(function (e) {
$('input[name=car1]:checked').each(function () {
alert($(this).val());
});
});
https : //jsfiddle.net/en9x3sdm/
или подобного цикла:
$("input[name='car1']").click(function (e) {
$('input[name=car1]').each(function () {
alert($(this).filter(':checked').val());
});
});
https://jsfiddle.net/fuxd7cpk/ [ 1115]