表单验证后的Javascript NaN值

Javascript NaN value after form validation

本文关键字:NaN Javascript 验证 表单      更新时间:2023-09-26

我有一个函数的以下部分,它将事件和交付总数相加:

    // 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部分有关,有人能告诉我是什么导致了这个值吗。

您可以使用Number()而不是parseFloat()
如果您有一个空字符串,它将返回零。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

parseFloat将接受一些非数字字符的字符串,而不接受其他字符串。为了完全理解什么是可接受的,什么是不可接受的。请参阅此处获取有关方法parseFloat的文档。

然而,根据我的经验,通常情况下,值并不是你期望的值。我的建议是在进入函数时检查值currentElement.titledeliveryTotaleventTotal,看看它们包含什么值。如果你仍然没有看到确凿的证据,请在浏览器控制台中一次一个地评估函数中计算出的所有内容,看看它会返回什么。

不过那只是我的10美分