表单验证后的Javascript NaN值

时间:2014-04-23 15:10:35

标签: javascript

我有一个功能的以下部分,它将事件和传递总数加在一起:

    // 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部分有关,有人可以建议可能导致此值的原因。

2 个答案:

答案 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.titledeliveryTotaleventTotal,并查看它们保存的值。如果您仍然没有看到吸烟枪,请在浏览器控制台中一次评估您的功能中计算的所有内容,并查看它返回的内容。

那只是我的10美分。 :)