learning JavaScript - Need help with an exercise

S

Sean McCourt

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(inputString);
inputString=''" />

</form>

</body>

</html>
 
R

Randy Webb

Sean said:
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.
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.

<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.
 
R

Randell D.

Sean said:
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
 
S

Sean

Thank you both for your help



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(inputString);
inputString=''" />

</form>

</body>

</html>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,045
Latest member
DRCM

Latest Threads

Top