javascript - Jquery 用更新的变量计算

标签 javascript jquery wordpress calculated-field

我正在尝试显示一个动态价格字段,其中价格会根据多组选定的单选按钮进行更新。

我的计算工作正常,但当用户更改选择时我的问题出现了。

这是我的脚本:

    jQuery(document).ready(function ($) {
        var prijs = parseFloat($('.summary .price .amount').text().replace('€', '').replace('.', '').replace(',', '.'));
        var total;
            $('.product-addon-kleur input').change(function(){
                var x = parseFloat($(this).closest('input:checked').attr('data-price'));
                var total = prijs + x;
                var total_decimal = '€'+total.toLocaleString('nl-NL', { minimumFractionDigits: 2 });
                $('.summary .price .amount').text(total_decimal);
            $('.product-addon input:not(.product-addon-kleur input)').change(function(){
                    var x2 = parseFloat($(this).closest('input:checked').attr('data-price'));
                    var new_total = total + x2;
                    var new_total_decimal = '€'+new_total.toLocaleString('nl-NL', { minimumFractionDigits: 2 });
                    $('.summary .price .amount').text(new_total_decimal);
            });
            });
        });

如您所见,有多个“单选按钮组”都需要在总计中计算。

但是现在,当用户更改他对第一个单选按钮组(“.product-addon-kleur input”)的选择时,我的脚本再次使用起始价格(var total = prijs + x),不包括值第二组的选择 (var x2)。

我如何编写代码才能使计算准确无误?

同样在我的版本中,如果第一个函数尚未设置“var total”,则第二个函数不起作用(var new_total = total + x2;)。这意味着用户必须在价格更新之前在第一个单选按钮组中做出选择。

如果尚未设置“var total”来计算“var new_total = total + x2;”,如果它能以某种方式回退到“var prijs”会更好

最佳答案

编写一个由两个 onChange 事件触发的函数,它会在每次任何 radio 发生变化时重新计算所有内容。

function calc1() {
  var prijs = parseFloat($('.summary .price .amount').text().replace('€', '').replace('.', '').replace(',', '.'));
  var x = parseFloat($('.product-addon-kleur input').closest('input:checked').attr('data-price'));
  var total = prijs + x;
  var x2 = parseFloat($('.product-addon input:not(.product-addon-kleur input)').closest('input:checked').attr('data-price'));
  var new_total = total + x2;
  var new_total_decimal = '€'+new_total.toLocaleString('nl-NL', { minimumFractionDigits: 2 });
  $('.summary .price .amount').text(new_total_decimal);
}

jQuery(document).ready(function ($) {
  calc1();
  $('.product-addon-kleur input').change(calc1);
  $('.product-addon input:not(.product-addon-kleur input)').change(calc1);
});

关于javascript - Jquery 用更新的变量计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247250/

相关文章:

php - 在文件类别页面和单个产品页面上显示类别菜单

php - 覆盖 wp-login.php 样式

javascript - 将 DOMContentLoaded 监听器附加到动态创建的窗口

c# - 我可以使用 JS 检索客户端的内部 IP 地址吗?

javascript - 如何使用javascript在对象数组中执行计算

jquery - 获取JQuery中选定单选按钮的文本

php - 更改自定义产品类型的 WooCommerce "In Stock"文本(预购)

javascript - 将 svg 的 div 保存为 pdf

jquery - 当用户单击单选按钮时获取单选按钮的值

javascript - 动态更改 ASP.NET 页面上的值而不实际刷新它