简单jQuery价格更新问题下拉列表vs单选按钮

简单jQuery价格更新问题下拉列表vs单选按钮,jquery,Jquery,因此,我想出了如何通过jQuery更新价格,使用单选按钮: 以下是链接: 现在我遇到的问题是对下拉列表应用完全相同的函数,因此选项值。当在下拉列表中选择维度时,我希望价格发生变化 我在这里添加了代码: $("option:selected").each(function() { var value = $(this).attr("value"); total += parseInt(value); }); 试图让它工作,但没有运气。有什么想法吗 谢谢 我不知道ultracart是什么。

因此,我想出了如何通过jQuery更新价格,使用单选按钮:

以下是链接:

现在我遇到的问题是对下拉列表应用完全相同的函数,因此选项值。当在下拉列表中选择维度时,我希望价格发生变化

我在这里添加了代码:

$("option:selected").each(function() {
  var value = $(this).attr("value");
  total += parseInt(value);
});
试图让它工作,但没有运气。有什么想法吗


谢谢

我不知道ultracart是什么。 不管ultracart如何,以下是我将如何实现您的目的。


看看是否可以将其合并到主代码中,并希望它能满足您的需要

我解决了这个问题。可在此处找到一个工作示例:


我看过你的代码,风格不是很好,如果我需要给你一个解决方案,我需要重写一切。因此,我只提出一些建议。1.calcTotal函数可以计算所有内容的总量,然后有一个返回值。2.您的选项没有与成本对应的值。3.最好为成本值设置一个id,然后在每次触发事件时使用该id更新成本值。4如果您使用div或其他html标记来安排您的html布局,应该会更好。谢谢您的建议。但是是的,在它完全发挥功能之前,设计它的样式是没有意义的。输出只需要是一个临时输出。因为其他所有东西的实际价格都是在ultracart的后端计算出来的。但是在您看到的示例中,选项没有值,因为选项的jquery不起作用。Ultracart使用表格作为基本HTML,但稍后当事情完全正常时,会添加分区用于样式设置。顺便说一句,最好以一种好的样式呈现代码,因为它们易于阅读,如果你想找一个更简单的例子来说明你所发布的内容,你可以在这里找到:我可以整天查看这些代码,但由于某些原因,我不知道如何在选项:selected上添加更改功能。它单独工作,但当我添加输入:checked时,它不起作用
function total(){
     var total = 0;
     var opt3 = parseInt($("select[name='OptionValue3'] option:selected").val());
     var opt4 = parseInt($("select[name='OptionValue4'] option:selected").val());
     total = opt3 + opt4;
     return total;
}

$(document).ready(function(){
     var num = total();
     $("#total").append(num);

     $("select").on('change', function(){
          num=total();
          $("#total").html(num);
     });

});
$(document).ready(function(){
    //iterate through each textboxes and add keyup
    //handler to trigger sum event
    $(".add").each(function() {
        $(this).bind("click keyup", function(){
            calculateSum();
        });
    });
});

function calculateSum() {
    var sum = 0;
    //iterate through each textboxes and add the values
    $("input.add:checked, select .add:selected, input.add:not(:radio)").each(function() {
        console.log(this);
        //add only if the value is number
        if(!isNaN(this.value) && this.value.length!=0) {
            sum += parseInt(this.value);
        }
    });
    //.toFixed() method will roundoff the final sum to 2 decimal places
    $("#sum").html(sum.toFixed(0));
}