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
事件发生时,代码运行。如果您想在单击收音机时更新,请同时使用输入
和更改
,这正是我的问题的答案。非常感谢。