jQuery根据复选框更新当前价格

时间:2016-02-28 13:57:38

标签: javascript jquery html

当客户检查其他选项时,我尝试更新当前字段值。

我的复选框很少,输入字段的值不同。

 <input type="checkbox" class="item-price-checkbox" name="equipment_1" value="20">
 <input type="checkbox" class="item-price-checkbox" name="equipment_2" value="30">
 <input type="checkbox" class="item-price-checkbox" name="equipment-3" value="50">

目前汽车价格为100美元。当客户检查设备_1时,它会将其价格加到现有价格上。所以在这种情况下它将是100$ + 20$ = 120$。我的脚本无法正常运行。因为当我检查一些我没有得到120时,我得到了10020。所以添加不能正常工作。

var basePrice = $(".price_field").val();

$(".item-price-checkbox").change(function() {
    var newPrice = basePrice;

    $('.item-price-checkbox:checked').each(function() {
        newPrice += $(this).val();
        // newPrice = newPrice + $(this).val();
    });

    $('.price_field').val(newPrice);
});

1 个答案:

答案 0 :(得分:1)

尝试将收到的值转换为number

var basePrice = parseInt($(".price_field").val(),10);

$(".item-price-checkbox").change(function() {
    var newPrice = basePrice;
    $('.item-price-checkbox:checked').each(function() {
        newPrice += parseInt($(this).val(),10);
    });
    $('.price_field').val(newPrice);
});

基本上,.val()将以字符串的形式返回键入的值。我们必须手动将其转换为数字。在解析radixstring时,也不要忘记传递number参数。如果您没有,那么转换将按照提供的字符串以不同的方式发生。