当客户检查其他选项时,我尝试更新当前字段值。
我的复选框很少,输入字段的值不同。
<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);
});
答案 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()
将以字符串的形式返回键入的值。我们必须手动将其转换为数字。在解析radix
到string
时,也不要忘记传递number
参数。如果您没有,那么转换将按照提供的字符串以不同的方式发生。