Wednesday, May 15, 2024
 Popular · Latest · Hot · Upcoming
94
rated 0 times [  100] [ 6]  / answers: 1 / hits: 35165  / 11 Years ago, mon, february 18, 2013, 12:00:00
<form>
<table>
<tr>
<td>Distance:</td>
<td><input type=number id=distance onKeyUp=calculate();>m</td>
</tr>
<tr>
<td>Time:</td>
<td><input type=number id=time onKeyUp=calculate();>s</td>
</tr>
<tr>
<td>Speed:</td>
<td><span id=speed>21</span><span id=unit>&nbsp;m/s</span></td>
</tr>
</table>
</form>

<script type=text/javascript>

var calculate = function() {
var distance = document.getElementById(distance).value;
var time = document.getElementById(time).value;
var speed = distance/time;}
if (speed==Infinity || speed==NaN) {
document.getElementById(speed).innerHTML=Invalid Input;
document.getElementById(unit).innerHTML=;
} else {
document.getElementById(speed).innerHTML=speed;
}

</script>


I am making a simple speed calculator but it isn't working. The output comes [object HTMLSpanElement]
Any help will be appreciated for I am new to javascript.


More From » html

 Answers
33

The variable speed in the last line is not the same as the one you set because it's in a different scope.



Try this:



var calculate = function() {
var distance = document.getElementById(distance).value;
var time = document.getElementById(time).value;
var speed = distance/time;

if (speed==Infinity || speed==NaN){
document.getElementById(speed).innerHTML=Invalid Input;
document.getElementById(unit).innerHTML=;
}else{
document.getElementById(speed).innerHTML=speed;
}
};

[#80162] Saturday, February 16, 2013, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
khalidkendelld

Total Points: 55
Total Questions: 99
Total Answers: 77

Location: South Korea
Member since Tue, Feb 22, 2022
2 Years ago
;