2015-06-02 41 views
1

使用I确认的图书馆我有一个基本的HTML:
I确认金额和减去值

<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进行这种操作的文档(我找不到任何文档),所以我需要将收音机输入的值“求和”到复选框
i f无线电输入1被选中然后值为1,然后检查是否已经检查了复选框如果是,然后将该值与已经检查的单选按钮相加:
like:1radio + 10checkbox = 11,所以11是我的结果但如果:
2radio + 10checkbox + 40checkbox then = 52 ... correct ?,但是如果用户取消选中其中一个复选框,然后减去该值...用上面的代码的孩子,有点工作......我设法将一个无线电和一个复选框相加,但是如果我选择另一个单选按钮,它将不会执行任何操作,除非我选择另一个复选框,但它会忽略第一个复选框,而当我取消选择复选框时,它会给我错误的结果... I不能使用iCheck工作...

回答

0

最简单的方法来实现这一点是有一个单一的功能上运行无线电和复选框输入的。然后该函数将总计所有选定元素的值,而不是从存储的总和中添加/删除当前值。使用

$(':radio, :checkbox').change(updateTotal); 

function updateTotal() { 
    var total = 0; 
    $(':radio:checked, :checkbox:checked').each(function() { 
     total += parseInt(this.value); 
    }); 
    console.log(total); 
} 

Example fiddle

+0

是啊,这做到了,我缺的是** ** ifChanged代码中的第一个象应该是行'$(':

试试这个电台, :复选框')。on('ifChanged',updateTotal);'和其余保持不变,现在正在工作!谢谢! – Tanker