Почему мой код Javascript проверяется, но не возвращает результатов? - PullRequest
0 голосов
/ 20 мая 2011

Я озадачен тем, почему результат вычисления Javascript не появляется в поле ввода идентификатора «Между».Я запустил JS через jshint.com, и он не нашел ошибок.Это будет использоваться в среде iPhone на html-странице.Я очень новичок в JS.Я взял простой математический код в другом месте и превратил его в форму, которую вы видите здесь.Можете ли вы, JS-кодеры, показать мне, где мой сценарий пошёл не так?



function heatpit(form) {
    var e = form.elements.LENGTH.value, // put LENGTH (number of minutes) field value into variable e
        f = form.elements.STOPS.value, // put STOPS field value into variable f
        secs2 = e * 60, // convert the minutes into seconds
        periods = f + '1', // add 1 to the pit stop number get the total  number of divisions throughout the LENGTH
        result2 = secs2 / periods, // divide the LENGTH by the number of periods
        seconds = result2 % 60, // use modulus operator to get the remainder and convert it into seconds figure
        minutes = Math.floor(result2 / 60), // get the minute figure as a digit
        time = minutes + ":" + seconds; // concatenate everything into minutes and seconds

    form.elements.between.value = time; // display "time" value in the "between" field
}

var resultPitStops = document.getElementById('resultPitStops');
resultPitStops.onclick = function () {
    var form = document.getElementById('form2');
    heatpit(form);
};


1 Ответ

0 голосов
/ 20 мая 2011

Например, у вас есть запятые в конце каждого оператора.они должны быть точкой с запятой:

var e = form.elements.LENGTH.value;
                                 ^---semicolon
var f = form.elements.STOPS.value;
etc...

Тогда:

periods = f + '1'

f извлекается из поля формы, и Javascript обрабатывает эти значения как строки, поэтому вы делаетевзятие строки и соединение с другой строкой.Если значение stop равно 123, тогда вы получите 1231, а не 124.

Затем вы берете это строковое значение 1231 и используете его в качестве делителя.Скорее всего, javascript преобразует его в «0», поэтому вы выдаете ошибку деления на ноль.

Итак ... проверьте консоль ошибок JavaScript вашего браузера.В Firefox просто нажмите shift-ctrl-J, чтобы открыть его.И следите за ошибками при выполнении функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...