Jquery 将单选按钮的值添加到一起

Jquery 将单选按钮的值添加到一起,jquery,forms,Jquery,Forms,我有一个表格,人们可以通过选择不同的选项来建立订单,也就是说,他们首先选择一个基本价格,然后添加到该价格中。单选按钮被隐藏,标签被设置为可点击区域 这些要求包括能够取消选择单选按钮(即,如果您愿意,您可以将您的选择重置回null),我在下面的代码中已经确定了该选项 我还必须将值写入页面上的其他元素。那也行 将不同单选按钮组的值添加到一起是不正确的 $('.order-option + label').click(function(e) { var radio = $(this).att

我有一个表格,人们可以通过选择不同的选项来建立订单,也就是说,他们首先选择一个基本价格,然后添加到该价格中。单选按钮被隐藏,标签被设置为可点击区域

这些要求包括能够取消选择单选按钮(即,如果您愿意,您可以将您的选择重置回null),我在下面的代码中已经确定了该选项

我还必须将值写入页面上的其他元素。那也行

将不同单选按钮组的值添加到一起是不正确的

$('.order-option + label').click(function(e) {

    var radio = $(this).attr('for');
    radio = $('#' +radio );

    var spec_price = 0;
    var env_price = 0;

    switch($(radio).attr('name')) {
        case 'specifications':
            spec_price = parseInt(radio.val());
        break;
        case 'envelopes':
            env_price = parseInt(radio.val());
        break;
    }

    var total_price = +spec_price + env_price;

    var desc = radio.data('title');

    if(radio.is(':checked')) {
        e.preventDefault();
        radio.removeAttr('checked');
    }

    $('.order-preview-total').html('$'+total_price+' (inc gst)');
    $('#order-preview-total').val('$'+total_price+' (inc gst)');
    $('.order-preview-content').html(desc);
    $('#order-preview-content').val(desc);

});
当我点击第二行单选按钮时,它只是覆盖了价格,而不是增加价格

如果再次取消选择所有单选按钮,也不会将总数重置为0

带有类名的元素(例如,order preview total)是显示信息的元素,带有ID的元素是隐藏的表单元素,用于将数据传递到另一个表单

编辑
根据要求,我创建了一个。如果单击第二行中的任何按钮,则该值应添加到第一行中已选择的按钮。如果您再次单击已选择的选项,即取消选择该选项,则应再次减去该值。

好吧,我想如果是总价,您需要在函数外部声明您的总价变量,并将其设置为0,否则每次单击单选按钮时,它都会覆盖该变量

如果选中按钮,则减去值。没有HTML很难说,但在我看来,您需要修改if语句,如下所示:

if(radio.is(':checked')) {
    e.preventDefault();
    var subtract = parseInt(this.val());
    total_price = total_price - subtract;
    radio.removeAttr('checked');
}

不知道你在找什么。在HTSL.HTML中,在JSFIDLE中演示是很有用的。NETunChina一个收音机,你做的方式不是正常的用户体验…用户不会习惯,可以考虑添加一个<代码> N/A < /代码>选项,我想如果是总价,你需要在函数外声明你的总价变量,并将其设置为0,否则每次你单击单选按钮时它都会覆盖它。我已按要求编辑了文章。谢谢,这让我了解了大部分内容。为了增加总数,我只需移动
var spec\u price=0;var环境价格=0函数外,而不是总价,上面的代码几乎就在那里,只需要使其
parseInt(radio.val())
,因为它指的是标签而不是输入。