Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用所选收音机更新总计_Jquery_Html_Sum - Fatal编程技术网

Jquery 如何使用所选收音机更新总计

Jquery 如何使用所选收音机更新总计,jquery,html,sum,Jquery,Html,Sum,我仍然在用输入、收音机和下拉菜单制作自动总计表单。输入和下拉操作非常有效。但是收音机不是它应该的样子。即使未选中该表单,也会将该单选值相加。我只需要在单击收音机时自动求和的表单。这是我的密码 jQuery(文档).ready(函数($){ 变量$total=$(“#total”), $value=$('.value'); $value.on('input[type=radio]:选中',函数(e){ var合计=0; $value.每个(函数(索引,元素){ 如果(!Number.isNaN(

我仍然在用输入、收音机和下拉菜单制作自动总计表单。输入和下拉操作非常有效。但是收音机不是它应该的样子。即使未选中该表单,也会将该单选值相加。我只需要在单击收音机时自动求和的表单。这是我的密码

jQuery(文档).ready(函数($){
变量$total=$(“#total”),
$value=$('.value');
$value.on('input[type=radio]:选中',函数(e){
var合计=0;
$value.每个(函数(索引,元素){
如果(!Number.isNaN(parseInt(this.value,10)))
total=total+parseInt(这个值为10);
});
$total.val(总计);
});
});

值1

+ 5
+ 10
价值4 0 10 20 30
全部的
您可以检查当前项目是否为收音机,并确保使用进行检查,否则您可以通过
返回来跳过当前迭代,如下所示:

jQuery(document).ready(function ($) {
  var $value = $('.value');
  $value.on('input', function (e) {
    var total = 0;
    $value.each(function (index, elem) {
        if ($(elem).is("input[type='radio']") && (!$(elem).is(":checked")))
           return;
        if (!Number.isNaN(parseInt(this.value, 10)))
           total = total + parseInt(this.value, 10);
    });
    $('#total').val(total);
  });
});


更新后的

只有像“keyup按键模糊更改输入”这样的事件才能传递到on功能。您应该处理textbox和dropdrop的更改事件,并处理复选框的单击事件

$('.value').on('change click', handleEvent);
function handleEvent() {
    $('.value').each(function(i, ele){
        if ($(ele).is("input[type='radio']") && (!$(ele).is(":checked"))) {
            return;
        }
        if (!Number.isNaN(parseInt(ele.value))) {
           total += parseInt(ele.value);
       }
    }
}
您不应该遍历具有class
.value
的所有元素,因为它包含未选中的复选框

$('.value').on('change click', handleEvent);
function handleEvent() {
    $('.value').each(function(i, ele){
        if ($(ele).is("input[type='radio']") && (!$(ele).is(":checked"))) {
            return;
        }
        if (!Number.isNaN(parseInt(ele.value))) {
           total += parseInt(ele.value);
       }
    }
}

@Wilf,因为它没有
输入
事件。当
input
事件发生时,代码运行。如果您想在单击收音机时更新,请同时使用
输入
更改
,这正是我的问题的答案。非常感谢。