我有一个功能的以下部分,它将事件和传递总数加在一起:
// IF currentElement is radio AND currentElement is checked
if (currentElement.type == "radio" && currentElement.checked) {
// Parse into a number (as a float)
deliveryTotal = deliveryTotal + parseFloat(currentElement.title);
}
// IF currentElement is a checkbox AND currentElement is checked
else if (currentElement.type == "checkbox" && currentElement.checked) {
// Parse into a number (as a float)
eventTotal = eventTotal + parseFloat(currentElement.title);
}
}
// Assign total to input with "£" infront - to 2 decimal places
totalbox.value = "£" + (eventTotal + deliveryTotal).toFixed(2);
这似乎工作正常,直到我验证我的表格,例如,显示一个警报,当它刚刚返回值“£NaN”,
我认为这与我的函数parseFloat
部分有关,有人可以建议可能导致此值的原因。
答案 0 :(得分:3)
您可以使用Number()代替parseFloat() 如果你有一个空字符串,这将返回零。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
答案 1 :(得分:0)
parseFloat
将使用非数字字符而不是其他字符串。要完全了解接受的内容和不接受的内容,see here for documentation关于方法parseFloat
。
然而,根据我的经验,通常情况下,价值并不是您所期望的。我的建议是在进入函数时检查值currentElement.title
,deliveryTotal
和eventTotal
,并查看它们保存的值。如果您仍然没有看到吸烟枪,请在浏览器控制台中一次评估您的功能中计算的所有内容,并查看它返回的内容。
那只是我的10美分。 :)