我已经在Page1.html中使用jquery进行了一些计算,方法是使用get函数从输入框获取值,并使用set函数在输入框中设置值。如果也选中全部复选框,我还想获取复选框的总价值,但是我只想获取一个复选框的价值。我还希望将复选框的总价值传递给inputbox13中的page2.html。请帮我。
onNameKeyUp(event: any) {
this.spelling = event.target.value;
// the rest of your function as before
}
答案 0 :(得分:0)
为复选框输入其他名称并获取值。如果使用相同的名称,则其行为类似于单选按钮,这就是为什么它仅返回一个值的原因。
<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();
答案 1 :(得分:0)
您可以执行此操作,并使用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());
});
});
答案 2 :(得分:0)
对于您正在执行的操作,您希望迭代每个复选框,并合并每个被选中的值。为此,最好使用public static int findMin(List<Integer> distance, int points) {
AtomicInteger c = new AtomicInteger(1);
while (distance.stream().mapToInt(d -> d / c.get()).sum() > points) c.incrementAndGet();
return c.get();
}
。我建议创建一个Int变量,然后在找到选中的元素时,用新值增加变量。然后,在循环之后,您便得到了一个总和。
请考虑以下改进。
.each()
$(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;
}
希望有帮助。