Неопределенная / NaN ошибка в выводе

Это мой первый пост о стековерсии, я обнаружил ошибку в следующем коде, ошибка не отображается в консоли inspect element / JS в firefox, но по какой-то причине вывод после вычисления отображает неопределенную ошибку / NaN. Ввод от пользователя анализируется в Float.

код:

function costtoShip(){

    // get input 

    var weight = parseFloat(document.getElementById("weight")).value ;
    var msg;
    var cost;
    var subtotal;

    // calculation

    if ( weight >= 0.00 && weight <= 150.00 ) {
        cost = 20.00;
    }

    else if ( weight >= 151.00 && weight <= 300.00 ) {
        cost = 15.00;
    }

    else if ( weight >= 301.00 && weight <= 400.00 ) {
        cost = 10.00;
    }    


   subtotal = weight * cost ;
   msg = "<div> Total Weight is " + weight + "</div>" ;
   msg = msg + "<div> Subtotal is " + subtotal + "</div>" ;


   // send output

    document.getElementById("results").innerHTML = msg ;
}

4 ответа

Решение
var weight = parseFloat(document.getElementById("weight")).value;

Это не как разобрать Float. Вы пытаетесь позвонить value недвижимость на двоих. Уберите скобки.

var weight = parseFloat(document.getElementById("weight").value);

Я предлагаю использовать console.log(weight); или другие значения вокруг вашего кода, чтобы вы могли легче определить эти проблемы.

parseFloat(document.getElementById("weight")).value

должно быть

parseFloat(document.getElementById("weight").value)

С практикой, вы будете развивать глаза на такие вещи. А до тех пор добавляйте в свой код операторы alert(), чтобы разобраться в подобных вещах. Просто не забудьте взять их, когда вы закончите. Помните, что делать математику в NaN - это не ошибка, следовательно, нет сообщения об ошибке.

Вы закрыли скобки в первой строке своего кода слишком рано. Вероятно, это должно быть так:

var weight = parseFloat(document.getElementById("weight").value);

Javascript не может проанализировать элемент DOM для плавания.;)

Если weight значение не соответствует ни одному из указанных условий cost переменная не будет инициализирована и любые вычисления с использованием undefined приведет к undefined,

Другие вопросы по тегам