Why does my Javascript code validate, but returns no results?
I'm puzzled as to why the result of the Javascript computation does not appear in the input field of id "Between." I ran the JS through jshint.com and it found no errors. This will be used in an iPhone environment on an html page. I'm very new to JS. I picked up some simple math code elsewhere and massaged it into the shape you see here. Can you JS coders show me where my script has gone wrong?
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 = t开发者_如何学Cime; // display "time" value in the "between" field
}
var resultPitStops = document.getElementById('resultPitStops');
resultPitStops.onclick = function () {
var form = document.getElementById('form2');
heatpit(form);
};
For one, you've got commas as the end of each statement. they should be semicolons:
var e = form.elements.LENGTH.value;
^---semicolon
var f = form.elements.STOPS.value;
etc...
Then:
periods = f + '1'
f is retrieved from a form field, and Javascript treats those values as strings, so what you're doing is taking a string, and concatenating with with another string. If the stops value is 123, then you get 1231, not 124.
You then take that string value of 1231 and use it as a divisor. Most likely javascript is casting it to '0', so you're producing a divide-by-zero error.
So... check your browser's javascript error console. In Firefox, just hit shift-ctrl-J to pop it up. And watch for errors as the function executes.
加载中,请稍侯......
精彩评论