【发布时间】:2018-09-10 06:54:49
【问题描述】:
我有一些 HTML 复选框,我在 Javascript 中使用数组选择了它们。这些复选框中的每一个都有不同的价格,并且在遍历“选定的”之后,最终价格只会在函数内部更新。如果我尝试在外面使用它,它会返回“0”(初始值)。
HTML:
<input type="checkbox" name="topping" value="Cheese Topping - £0.20" onclick="Topping_Order();">
<p class="size">Cheese<span>£0.20</span></p><br>
<input type="checkbox" name="topping" value="Mushrooms Topping - £0.40" onclick="Topping_Order();">
<p class="size">Mushrooms<span>£0.40</span></p><br>
<input type="checkbox" name="topping" value="Ham Topping - £0.50" onclick="Topping_Order();">
<p class="size">Ham<span>£0.50</span></p><br>
<input type="checkbox" name="topping" value="Anchovies Topping - £0.60" onclick="Topping_Order();">
<p class="size">Anchovies<span>£0.60</span></p>
JS:
// Pizza Topping Order
var topping_prices = new Array();
topping_prices["Cheese Topping - £0.20"] = 0.2;
topping_prices["Mushrooms Topping - £0.40"] = 0.4;
topping_prices["Ham Topping - £0.50"] = 0.5;
topping_prices["Anchovies Topping - £0.60"] = 0.6;
function Topping_Order(){
var topping_price = 0;
var selected_topping = theForm.elements["topping"];
for (var i = 0; i< selected_topping.length; i++){
if (selected_topping[i].checked == true){
topping_price = topping_price + topping_prices[selected_topping[i].value];
}
}
console.log("Total price inside the function is: £" + topping_price.toFixed(2));
return topping_price;
}
var topping_order_value = Topping_Order();
console.log("Total price outside the function is: £" + topping_order_value.toFixed(2));
【问题讨论】:
-
这里到底是什么问题?
-
topping_price 变量在函数内部实时更新。如果我想在函数之外使用它,它会返回 0(初始值)。
-
你想在外面怎么用?您的意思是在 UI 上显示更新后的值?
-
基本上,是的。如果您查看代码,我有 2 个控制台日志。第一个控制台日志(函数内部)根据复选框选择实时更新。第二个使用相同的变量,但从函数返回。我只需要在函数之外使用价格的更新版本。
标签: javascript html function input return