html的代码是:
<div id="container"><h1>Add-ons</h1>
<input type="checkbox" name="ch1" value="10" id="qr1" />Add-on Number 1 - 10 QR <br />
<input type="checkbox" name="ch1" value="20" id="qr1" />Add-on Number 2 - 20 QR <br />
<input type="checkbox" name="ch1" value="40" id="qr1" />Add-on Number 3 - 40 QR <br />
<input type="checkbox" name="ch1" value="60" id="qr1" />Add-on Number 4 - 60 QR <br />
</div>
<div> I want more add-ons
<select id="more" name="more">
<option value="0 QR">0</option>
<option value="30 QR">1</option>
<option value="50 QR">2</option>
<option value="100 QR">3</option>
</select>
<span id="span"></span>
User total usage: <span id="usertotal"> </span>
Jquery的:
//For select
function displayVals() {
var singleValues = $("#more").val();
$("#span").html("<b>more addons:</b> " +
singleValues);
}
$("select").change(displayVals);
displayVals();
//For checkboxes
var $cbs = $('input[name="ch1"]');
$cbs.click(function() {
var total = 0;
$cbs.each(function() {
if (this.checked)
var singleValues = $("#more").val();
total += +this.value + singleValues;
});
$("#usertotal").text(total);
});
我想要用户总使用量:创建复选框的总和并添加选项的值,这样如果我选择1复选框和2加选项1,我将写入用户总使用量:60。 提前谢谢你!
答案 0 :(得分:3)
请注意,对多个元素使用相同的id是无效的html。使用其name属性选中复选框。单击任何复选框循环遍历所有,并添加任何已检查的值。请注意,值需要转换为数字,我使用一元加运算符。
var $cbs = $('input[name="ch1"]');
$cbs.click(function() {
var total = 0;
$cbs.each(function() {
if (this.checked)
total += +this.value;
});
$("#usertotal").text(total);
});
答案 1 :(得分:0)
try it:
$('input:checkbox').change(function(){
var tot=0;
$('input:checkbox:checked').each(function(){
tot+=parseInt($(this).val());
});
$('#usertotal').html(tot)
});
答案 2 :(得分:0)
工作演示: http://jsfiddle.net/GNDAG/
希望它有所帮助。您可以详细了解each
here。
但是,就像@nnnnnn提到的那样,你的html不对 - ID属性需要是唯一的。
代码
$('input[type="checkbox"]').change(function() {
var total_span = 0;
$('input[type="checkbox"]').each(function() {
if ($(this).is(':checked')) {
total_span += parseInt($(this).prop('value'), 10);
}
});
$("#usertotal").html(total_span);
});
答案 3 :(得分:0)
你去:
HTML:
<div id="container"><h1>Add-ons</h1>
<input type="checkbox" class="numbers" name="ch1" value="10" id="qr1" />Add-on Number 1 - 10 QR <br />
<input type="checkbox" class="numbers" name="ch1" value="20" id="qr1" />Add-on Number 2 - 20 QR <br />
<input type="checkbox" class="numbers" name="ch1" value="40" id="qr1" />Add-on Number 3 - 40 QR <br />
<input type="checkbox" class="numbers" name="ch1" value="60" id="qr1" />Add-on Number 4 - 60 QR <br />
</div>
User total usage: <span id="usertotal"> </span>
的Jquery / JavaScript的:
var getCheckedBoxValues = function() {
var values = []
$(".numbers:checked").each(function() {
values.push($(this).val());
});
return values;
};
$('.numbers').click(function () {
$('#usertotal').html();
var usertotal = 0;
var values = getCheckedBoxValues();
for(i = 0; i < values.length; i++) {
usertotal += parseInt(values[i]);
}
$('#usertotal').html(usertotal);
});