472,145 Members | 1,415 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,145 software developers and data experts.

learning JavaScript - Need help with an exercise

Hi I am doing a JavaScript course and learning from the recommed book
(JavaScript 3rd Edition by Don Gosslin)

Below is one of the exercises from the book. I get this error message
when I try to use the calculator.

"document.Calculate.Input is null or not an object"

Can someone please tell me why this is?

I have checked and double checked that my code is exactly the same as
the book.
Thanks


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Calculator exercise P120</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
<script type="text/javascript">
<!-- hide from incompatible browsers

/*
the function is used to update the inputString variable above
x += y is the same as x = x + y
the variable named inputString contains the operands and operators of
the calculation
after the calculation is added to the input string variable, the
calculation is performed using the eval() function
the function updateString() accepts a single value representing a
number or operator
the value is then added to the inputString variable using the +=
assignment operator
after the inputString variable is updated, it is assigned the value of
a text box in the form

go to validator.w3.org/file-upload.html to validate this document

*/

var inputString = "";
function updateString(value)
{
inputString += value;
document.Calculator.Input.value = inputString;
}

// Stop hiding from incompatible browsers -->
</script>
</head>

<body>

<form name="Calculator" action =""> <!-- adds a form element -->
<input type="text name="Input" /><br /><br /> <!-- adds an input text
box -->

<!-- // each element along with the other elements sends a value to
the updateString() function using an onclick method -->

<input type="button" name="plus" value=" + " onclick="updateString(' +
')" />
<input type="button" name="minus" value=" - " onclick="updateString('
- ')" />
<input type="button" name="times" value=" x " onclick="updateString('
* ')" />
<input type="button" name="div" value=" / " onclick="updateString(' /
')" />
<input type="button" name="mod" value=" mod " onclick="updateString('
% ')" /><br />
<input type="button" name="zero" value=" 0 " onclick="updateString(' 0
')" />
<input type="button" name="one" value=" 1 " onclick="updateString(' 1
')" />
<input type="button" name="two" value=" 2 " onclick="updateString(' 2
')" />
<input type="button" name="three" value=" 3 " onclick="updateString('
3 ')" />
<input type="button" name="four" value=" 4 " onclick="updateString(' 4
')" /><br />
<input type="button" name="five" value=" 5 " onclick="updateString(' 5
')" />
<input type="button" name="six" value=" 6 " onclick="updateString(' 6
')" />
<input type="button" name="seven" value=" 7 " onclick="updateString('
7 ')" />
<input type="button" name="eight" value=" 8 " onclick="updateString('
8 ')" />
<input type="button" name="nine" value=" 9 " onclick="updateString(' 9
')" />
<br />

<!-- // the onclick event for the calc button performs the calculation
using the eval() function with the input string variable -->
<!-- // the calculated value is then assigned as the value of the
input text box -->

<input type="button" name="point" value=" . " onclick="updateString('
.. ')" />
<input type="button" name="clear" value=" clear "
onclick="document.Calculator.Input.value=''; inputString=''" />
<input type="button" name="calc" value=" = "
onclick="document.Calculator.Input.value=eval(inpu tString);
inputString=''" />

</form>

</body>

</html>
Jul 23 '05 #1
3 2385
Sean McCourt wrote:
Hi I am doing a JavaScript course and learning from the recommed book
(JavaScript 3rd Edition by Don Gosslin)
If the code you have posted is representative of what the book teaches
you, you need a new book.
Below is one of the exercises from the book. I get this error message
when I try to use the calculator.

"document.Calculate.Input is null or not an object"

Can someone please tell me why this is?
Yes.
I have checked and double checked that my code is exactly the same as
the book.
You missed the one thing killing it, that validating the HTML would have
caught.
<--snip-->

go to validator.w3.org/file-upload.html to validate this document
From your own code, had you done that it would have pointed out the
problem.

<--snip-->
<input type="text name="Input" /><br /><br /> <!-- adds an input text


type="text" note the closing " after the word text that you are missing.

<--snip-->

That is ignoring the <!-- //--> that are *not* needed in modern
browsers. It also ignores the eval usage, although it could be argued
that the use given is an "adequate" use of eval, there are better
methods to creating a JS driven calculator.

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Jul 23 '05 #2
Sean McCourt wrote:
Hi I am doing a JavaScript course and learning from the recommed book
(JavaScript 3rd Edition by Don Gosslin)

Below is one of the exercises from the book. I get this error message
when I try to use the calculator.

"document.Calculate.Input is null or not an object"

Can someone please tell me why this is?

I have checked and double checked that my code is exactly the same as
the book.
Thanks


I note Randy has replied with a solution, however since we're in the
same boat (but I'm a little ahead of you learning javascript) I find
the Mozilla web browser handy for helping me solve problems as it has a
Javascript console that gives you better error messages... thus, I
suggest you go to http://www.mozilla.org and near the lower right
corner, you'll see a link for Mozilla 1.7.5... Download it and use it as
your browser... If you want to see any errors in your codeing, select
Tools, Web Development, Javascript Console from the menu and it'll save
you posting here and waiting for replies...

Best of luck... you'll reach a few bumps along the way but don't be put
off - javascript is rather useful for your skillset...

randelld
Jul 23 '05 #3
Thank you both for your help

On Mon, 14 Mar 2005 14:15:25 +1100, Sean McCourt <sm*@ihug.com.au>
wrote:
Hi I am doing a JavaScript course and learning from the recommed book
(JavaScript 3rd Edition by Don Gosslin)

Below is one of the exercises from the book. I get this error message
when I try to use the calculator.

"document.Calculate.Input is null or not an object"

Can someone please tell me why this is?

I have checked and double checked that my code is exactly the same as
the book.
Thanks


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Calculator exercise P120</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
<script type="text/javascript">
<!-- hide from incompatible browsers

/*
the function is used to update the inputString variable above
x += y is the same as x = x + y
the variable named inputString contains the operands and operators of
the calculation
after the calculation is added to the input string variable, the
calculation is performed using the eval() function
the function updateString() accepts a single value representing a
number or operator
the value is then added to the inputString variable using the +=
assignment operator
after the inputString variable is updated, it is assigned the value of
a text box in the form

go to validator.w3.org/file-upload.html to validate this document

*/

var inputString = "";
function updateString(value)
{
inputString += value;
document.Calculator.Input.value = inputString;
}

// Stop hiding from incompatible browsers -->
</script>
</head>

<body>

<form name="Calculator" action =""> <!-- adds a form element -->
<input type="text name="Input" /><br /><br /> <!-- adds an input text
box -->

<!-- // each element along with the other elements sends a value to
the updateString() function using an onclick method -->

<input type="button" name="plus" value=" + " onclick="updateString(' +
')" />
<input type="button" name="minus" value=" - " onclick="updateString('
- ')" />
<input type="button" name="times" value=" x " onclick="updateString('
* ')" />
<input type="button" name="div" value=" / " onclick="updateString(' /
')" />
<input type="button" name="mod" value=" mod " onclick="updateString('
% ')" /><br />
<input type="button" name="zero" value=" 0 " onclick="updateString(' 0
')" />
<input type="button" name="one" value=" 1 " onclick="updateString(' 1
')" />
<input type="button" name="two" value=" 2 " onclick="updateString(' 2
')" />
<input type="button" name="three" value=" 3 " onclick="updateString('
3 ')" />
<input type="button" name="four" value=" 4 " onclick="updateString(' 4
')" /><br />
<input type="button" name="five" value=" 5 " onclick="updateString(' 5
')" />
<input type="button" name="six" value=" 6 " onclick="updateString(' 6
')" />
<input type="button" name="seven" value=" 7 " onclick="updateString('
7 ')" />
<input type="button" name="eight" value=" 8 " onclick="updateString('
8 ')" />
<input type="button" name="nine" value=" 9 " onclick="updateString(' 9
')" />
<br />

<!-- // the onclick event for the calc button performs the calculation
using the eval() function with the input string variable -->
<!-- // the calculated value is then assigned as the value of the
input text box -->

<input type="button" name="point" value=" . " onclick="updateString('
. ')" />
<input type="button" name="clear" value=" clear "
onclick="document.Calculator.Input.value=''; inputString=''" />
<input type="button" name="calc" value=" = "
onclick="document.Calculator.Input.value=eval(inp utString);
inputString=''" />

</form>

</body>

</html>


Jul 23 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

7 posts views Thread by Trvl Orm | last post: by
1 post views Thread by Brent Ritchie | last post: by
2 posts views Thread by rich | last post: by
4 posts views Thread by DjShifta | last post: by
60 posts views Thread by marss | last post: by
4 posts views Thread by somenath | last post: by
reply views Thread by Saiars | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.