我想根据客户的选项计算制作蛋糕的层成本。 1层成本320.00(已经为1层设定价格)
额外的图层成本100
在HTML中我有这个:
<select id="layer" name="layer" onchange="updateTotal()" >
<?php for( $i=1; $i<100; $i++ ) {
echo "<option value=$i> $i </option>\n"; }
?>
</select>
在我的javascript中,我有这个:
function updateTotal(){
var optionPrice = 0;
function cakeLayerPrice(){
document.getElementById('layer');
optionPrice += 100;}
}
cakeLayerPrice();
var totalPrice = optionPrice;
document.getElementById('totalPrice').innerHTML = "$ " + totalPrice;
}
显然,如果我在我的函数cakeLayerPrice()中选择了1层,那么显示的数量不会显示,什么是正确的解决方案?
e.g。它会显示出来 如果我选择
1层= 320.00
2层= 420.00(+100)
3层= 520.00(+100),依此类推。
答案 0 :(得分:2)
每次您调用 updateTotal()时,您都会将 optionPrice 重置为0。
相反,您应该从图层中选择图层编号并将其乘以100。
function updateTotal(){
var layers = document.getElementById('layer');
var totalPrice = parseInst(layers.value, 10) * 100;
document.getElementById('totalPrice').innerHTML = "$ " + totalPrice;
}
如果未选择任何内容,或者您未设置默认选项,则可以获得 -1 值。 在这种情况下,只需更新代码以处理负值:
function updateTotal(){
var layers = document.getElementById('layer');
var totalPrice = parseInst(layers.value, 10) * 100;
if (totalPrice > 0) {
document.getElementById('totalPrice').innerHTML = "$ " + totalPrice;
}
}
这个例子,即使你的价格是0也可以避免。
如果您有这种可能性,只需根据需要更改代码。