By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,617 Members | 1,600 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,617 IT Pros & Developers. It's quick & easy.

learning JavaScript - Need help with an exercise

P: n/a
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
Share this Question
Share on Google+
3 Replies


P: n/a
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

P: n/a
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

P: n/a
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.