Javascript数据-*属性计算器
问题是元素的选择是相互矛盾的。。“数据价格”中指定的元素值。我的代码无效,处理不当,希望在任何时候更改金额。 谢谢你有条件的帮助 html 试试这个: jQuery选择器中缺少的引号:$(“输入[name='tv[]”]Javascript数据-*属性计算器,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,问题是元素的选择是相互矛盾的。。“数据价格”中指定的元素值。我的代码无效,处理不当,希望在任何时候更改金额。 谢谢你有条件的帮助 html 试试这个: jQuery选择器中缺少的引号:$(“输入[name='tv[]”] $("input[name=tarifs],[name='tv[]'],[name='tv2[]']").change(function() { var sum1 = $("input[name=tarifs]:checked").data("price");
$("input[name=tarifs],[name='tv[]'],[name='tv2[]']").change(function() {
var sum1 = $("input[name=tarifs]:checked").data("price");
var sum2 = $("input[name='tv[]']:checked").data("price");
var sum3 = $("input[name='tv2[]']:checked").data("price");
var total = sum1 + sum2 + sum3;
$("#checkout-sum").html(total);
});
另一种方式:
$input = $("input[name=tarifs],[name='tv[]'],[name='tv2[]']");
$input.change(function() {
var sum = 0;
$input.filter(':checked').each(function(){
sum = sum + $(this).data("price");
});
$("#checkout-sum").html(sum);
});
将使用
change
事件,并仅查找选中的输入。当显示的任何收音机或复选框发生更改时,这将起作用
$inputs=$('#tarifs1,#tarifs2,#tv2,,#tv3,#tv4,#tv5').change(function(){
var total=0;
$inputs.filter(':checked').each(function(){
total+= $(this).data('price');
});
$("#checkout-sum").text(total);
})
尝试使用以下方法:-
$("input").change(function() {
var sum1 = $("input[name='tarifs']:checked").data("price"),
sum2 = 0,
sum3= 0;
$.each($("input[name='tv[]']:checked"), function(index,item) {
sum2 += $(item).data('price');
});
$.each($("input[name='tv2[]']:checked"), function(index,item) {
sum3 += $(item).data('price');
});
var total = +sum1 + sum2 + sum3;
$("#checkout-sum").html(total);
});
将
.keyup(
更改为).Change(
并查看控制台。之后,查看您希望输出/结果是什么?所有选中值的总和?还是所有复选框的总和?所有选中值的总和工作不正常=(。如果选择$tarifs1,则显示590。当数据价格=“540“+”您可以这样做,但会随选择而改变,所有数据都已重新计算?选项2完全适合。非常感谢=)上一个版本假定没有其他输入
,可能会在页面中的任何其他位置进行检查..危险谢谢,您的版本有效=)。只需一个问题,您可以将该位置设置为作业id(#tarifs1)、作业名称(名称=“tarifs”)?因为可能会有很多id。对所有要包含的id使用单个类。然后只需将该类用于选择器或更简单的$(“.parentWrpper:input”)
$inputs=$('#tarifs1,#tarifs2,#tv2,,#tv3,#tv4,#tv5').change(function(){
var total=0;
$inputs.filter(':checked').each(function(){
total+= $(this).data('price');
});
$("#checkout-sum").text(total);
})
$("input").change(function() {
var sum1 = $("input[name='tarifs']:checked").data("price"),
sum2 = 0,
sum3= 0;
$.each($("input[name='tv[]']:checked"), function(index,item) {
sum2 += $(item).data('price');
});
$.each($("input[name='tv2[]']:checked"), function(index,item) {
sum3 += $(item).data('price');
});
var total = +sum1 + sum2 + sum3;
$("#checkout-sum").html(total);
});