使用iCheck库我有一个基本的html:
<form>
<input type="radio" name="pks" value="1">
<input type="radio" name="pks" value="2">
<input type="radio" name="pks" value="3">
<hr>
<input type="checkbox" name="op1" value="10">
<input type="checkbox" name="op2" value="20">
<input type="checkbox" name="op3" value="30">
<input type="checkbox" name="op4" value="40">
</form>
那么我有我的jQuery:
$('input[name="pks"]').on('ifChecked', function(e) {
var $pkss = $(this).val();
$('input[type="checkbox"]').on('ifChecked', function(ev) {
var $ops = $(this).val();
sum = parseFloat($pkss) + parseFloat($ops);
// alert(sum);
$('#tt').text(sum)
});
$('input[type="checkbox"]').on('ifUnchecked', function(ev) {
var $ops = $(this).val();
sum = parseFloat($pkss) - parseFloat($ops);
// alert(sum);
$('#tt').text(sum)
});
});
我想要完成的是非常简单而不使用iCheck,但是因为我正在学习这个库,并且没有使用iCheck进行此类操作的文档(我找不到任何)我需要将“无线电输入”中的值“加”到复选框
如果选择了无线电输入1,则该值为1,然后检查是否已选中复选框,如果是,则将该值与已检查的单选按钮相加:
喜欢:1radio + 10checkbox = 11,所以11是我的结果但是如果:
2radio + 10checkbox + 40checkbox那么= 52 ...正确吗?但是如果用户取消选中其中一个复选框然后减去该值...使用上面的代码,有点工作...我设法总结一个无线电和一个复选框,但如果我选择一个不同的单选按钮,它不会做什么,直到我选择另一个复选框,但它忽略了第一个复选框,当我取消选中一个复选框,它给我错误的结果...我不能使它工作使用iCheck ......
答案 0 :(得分:0)
实现此目的的最简单方法是使用单个函数在无线电和复选框输入的change
上运行。然后,此函数将总计所有选定元素的值,而不是从存储的总数中添加/删除当前值。
试试这个:
$(':radio, :checkbox').change(updateTotal);
function updateTotal() {
var total = 0;
$(':radio:checked, :checkbox:checked').each(function () {
total += parseInt(this.value);
});
console.log(total);
}