【发布时间】:2016-04-27 10:36:59
【问题描述】:
我创建了一个函数 updatePrice,我已将它绑定到我的 HTML 表单中的复选框和单选按钮上的“单击”事件。每个复选框和单选基本上代表一个项目,它的价格作为这些<input> 元素的值属性。当我选中或取消选中任何框时,该函数会触发,遍历表单中的所有元素,并将所有选中项目的总价格更新到我的表单下方的 div 元素中,id 标签为“priceOutput”。
以下代码完美运行,打印出:该商品的价格为 $(商品价格)。
function updatePrice() {
var price = 0
for (i=0;i<=form.length;i++) {
var element = form[i]
if(element.checked) {
price+=parseInt(element.value)
}
document.getElementById("priceOutput").innerHTML = "The price of this item is $" + price + "."
}
}
但是,如果我切换最后一行,则根本不会打印该行:
function updatePrice() {
var price = 0
for (i=0;i<=form.length;i++) {
var element = form[i]
if(element.checked) {
price+=parseInt(element.value)
}
}
document.getElementById("priceOutput").innerHTML = "The price of this item is $" + price + "."
}
为什么我必须在 for 的 {} 中写下这行才能正常工作。 price 变量的作用域不是扩展到整个 updatePrice 函数吗?
我对编程还是比较陌生,所以如果这是一个基本问题,请原谅我。
【问题讨论】:
标签: javascript forms events checkbox radio