learning JavaScript - Need help with an exercise

Discussion in 'Javascript' started by Sean McCourt, Mar 14, 2005.

  1. Sean McCourt

    Sean McCourt Guest

    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>
     
    Sean McCourt, Mar 14, 2005
    #1
    1. Advertising

  2. Sean McCourt

    Randy Webb Guest

    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
     
    Randy Webb, Mar 14, 2005
    #2
    1. Advertising

  3. Sean McCourt

    Randell D. Guest

    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
     
    Randell D., Mar 14, 2005
    #3
  4. Sean McCourt

    Sean Guest

    Thank you both for your help



    On Mon, 14 Mar 2005 14:15:25 +1100, 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
    >
    >
    >
    >
    >
    >
    ><!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>
     
    Sean, Mar 14, 2005
    #4
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    325
  2. Hal Vaughan
    Replies:
    7
    Views:
    509
  3. woodyee
    Replies:
    1
    Views:
    204
    anne001
    May 2, 2006
  4. Andrey Popp

    [I'm learning C]: Learning to use ucontext

    Andrey Popp, Jan 29, 2012, in forum: C Programming
    Replies:
    5
    Views:
    784
    Keith Thompson
    Jan 31, 2012
  5. Sean
    Replies:
    3
    Views:
    90
    Christopher Benson-Manica
    Mar 25, 2005
Loading...

Share This Page