iCheck 总和和减去值
iCheck sum and subtract values
使用 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 进行此类操作的文档(我找不到任何文档)我需要 "sum" 从无线电输入到复选框的值
如果单选输入 1 是 selected 则值为 1,然后检查是否已选中复选框,如果已选中,则将该值与已选中的单选按钮相加:
喜欢:1radio + 10checkbox = 11,所以 11 是我的结果但是如果:
2radio + 10checkbox + 40checkbox 然后= 52 ...正确吗?但是如果用户取消选中其中一个复选框然后减去该值...使用上面的代码,有点工作......我设法总结了一个收音机和一个复选框,但如果我 select 一个不同的单选按钮,它什么都不做,直到我 select 另一个复选框,但它忽略第一个复选框,当我 deselect 一个复选框时,它给我错误的结果...我无法使用 iCheck 使其工作...
实现此目的的最简单方法是拥有一个在单选输入和复选框输入的 change
上运行的函数。然后此函数将计算所有选定元素的值,而不是 adding/removing 存储总计中的当前值。
试试这个:
$(':radio, :checkbox').change(updateTotal);
function updateTotal() {
var total = 0;
$(':radio:checked, :checkbox:checked').each(function () {
total += parseInt(this.value);
});
console.log(total);
}
使用 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 进行此类操作的文档(我找不到任何文档)我需要 "sum" 从无线电输入到复选框的值
如果单选输入 1 是 selected 则值为 1,然后检查是否已选中复选框,如果已选中,则将该值与已选中的单选按钮相加:
喜欢:1radio + 10checkbox = 11,所以 11 是我的结果但是如果:
2radio + 10checkbox + 40checkbox 然后= 52 ...正确吗?但是如果用户取消选中其中一个复选框然后减去该值...使用上面的代码,有点工作......我设法总结了一个收音机和一个复选框,但如果我 select 一个不同的单选按钮,它什么都不做,直到我 select 另一个复选框,但它忽略第一个复选框,当我 deselect 一个复选框时,它给我错误的结果...我无法使用 iCheck 使其工作...
实现此目的的最简单方法是拥有一个在单选输入和复选框输入的 change
上运行的函数。然后此函数将计算所有选定元素的值,而不是 adding/removing 存储总计中的当前值。
试试这个:
$(':radio, :checkbox').change(updateTotal);
function updateTotal() {
var total = 0;
$(':radio:checked, :checkbox:checked').each(function () {
total += parseInt(this.value);
});
console.log(total);
}