/    Sign up×
Community /Pin to ProfileBookmark

Undefined variables in a random number function

Evening all.

I have a problem with some undefined variables ina function.

Although there are comments in the code below, this is how it works.

[LIST]

  • [*]

    When the user presses the button, a ranom number is generated


  • [*]

    This numer is converted to a 1 or 0


  • [*]

    this updates the running totals


  • [*]

    the totals are displayed in the table


  • [/LIST]

    The problem is that although it loads properly, I can’t get the variable to update the table – I just getundefined.

    Here’s the code:

    [CODE]<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
    <html xmlns=”http://www.w3.org/1999/xhtml”>
    <head>
    <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
    <title>Teabag calculator</title>
    <script language=”javascript” type=”text/javascript”>
    i=0;
    var total=80;
    var single=0;
    var dbl=80;
    var i=0;
    function maketea()
    {
    document.getElementById(‘tries’).innerHTML=i.value;
    var randomnumber=Math.floor(Math.random()*2);
    if (randomnumber==0)
    //low, ie single
    /*if a single bag is pulled, the doubles are unaffected, the singles fall by one
    the total number falls by one, and the number of tries increases by one*/
    {
    single=single-1;
    total=dbl+single;
    i=i+1
    document.getElementById(‘tries’).innerHTML=i.value;
    document.getElementById(‘doubles’).innerHTML=dbl.value;
    document.getElementById(‘singles’).innerHTML=single.value;
    document.getElementById(‘total’).innerHTML=total.value;
    document.getElementById(‘doubles’).style.color=”black”;
    document.getElementById(‘singles’).style.color=”red”
    }
    else if(randomnumber==1)
    //high, ie double
    /*if a double is pulled, the doubles fall by one, the singles increase by one,
    thetotal number stays the same and the tries goes up*/
    {
    dbl=dbl-1;
    single=single+1;
    total=dbl+single;
    i=i+1;
    document.getElementById(‘tries’).innerHTML=i.value;
    document.getElementById(‘doubles’).innerHTML=dbl.value;
    document.getElementById(‘singles’).innerHTML=single.value;
    document.getElementById(‘total’).innerHTML=total.value;
    document.getElementById(‘singles’).style.color=”black”;
    document.getElementById(‘doubles’).style.color=”red”;
    }
    };
    </script>
    <style type=”text/css”>
    <!–
    .style1 {font-size: large}
    –>
    </style>
    </head>

    <body>
    This page simulates the “Dad problem”, as illustrated on <a href=”http://answers.yahoo.com/question/index;_ylt=AvyknayS8m5RMuoYpmoj_lPsy6IX;_ylv=3?qid=20090106022211AAr5W7Q”>Yahoo! Answers</a>.
    <hr />
    <INPUT TYPE=”button” NAME=”myButton” VALUE=”Make the tea!” onClick=”maketea()”>
    <table width=”125″ border=”0″ cellspacing=”0″ cellpadding=”0″>
    <caption align=”top”>
    <span class=”style1″>In the box</span>
    </caption>

    <tr>
    <td>Number of cups made</td>
    <td>Doubles left</td>
    <td>Singles left</td>
    <td>Total in the box</td>
    </tr>
    <tr>
    <td id=”tries”>&nbsp;
    </td>
    <td id=”doubles”>80</td>
    <td id=”singles”>&nbsp;</td>
    <td id=”total”>80</td>
    </tr>
    </table>

    </body>
    </html>
    [/CODE]

    Can anyone help?

    to post a comment
    JavaScript

    4 Comments(s)

    Copy linkTweet thisAlerts:
    @TheBearMayJan 08.2009 — Remove the .value on JS variables:
    [code=html]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Teabag calculator</title>
    <script language="javascript" type="text/javascript">
    i=0;
    var total=80;
    var single=0;
    var dbl=80;
    var i=0;
    function maketea()
    {
    document.getElementById('tries').innerHTML=i.value;
    var randomnumber=Math.floor(Math.random()*2);
    if (randomnumber==0)
    //low, ie single
    /*if a single bag is pulled, the doubles are unaffected, the singles fall by one
    the total number falls by one, and the number of tries increases by one*/
    {
    single=single-1;
    total=dbl+single;
    i=i+1
    document.getElementById('tries').innerHTML=i;
    document.getElementById('doubles').innerHTML=dbl;
    document.getElementById('singles').innerHTML=single;
    document.getElementById('total').innerHTML=total;
    document.getElementById('doubles').style.color="black";
    document.getElementById('singles').style.color="red"
    }
    else if(randomnumber==1)
    //high, ie double
    /*if a double is pulled, the doubles fall by one, the singles increase by one,
    thetotal number stays the same and the tries goes up*/
    {
    dbl=dbl-1;
    single=single+1;
    total=dbl+single;
    i=i+1;
    document.getElementById('tries').innerHTML=i;
    document.getElementById('doubles').innerHTML=dbl;
    document.getElementById('singles').innerHTML=single;
    document.getElementById('total').innerHTML=total;
    document.getElementById('singles').style.color="black";
    document.getElementById('doubles').style.color="red";
    }
    };
    </script>
    <style type="text/css">
    <!--
    .style1 {font-size: large}
    -->
    </style>
    </head>

    <body>
    This page simulates the "Dad problem", as illustrated on <a href="http://answers.yahoo.com/question/index;_ylt=AvyknayS8m5RMuoYpmoj_lPsy6IX;_ylv=3?qid=20090106022211AAr5W7Q">Yahoo! Answers</a>.
    <hr />
    <INPUT TYPE="button" NAME="myButton" VALUE="Make the tea!" onClick="maketea()">
    <table width="125" border="0" cellspacing="0" cellpadding="0">
    <caption align="top">
    <span class="style1">In the box</span>
    </caption>

    <tr>
    <td>Number of cups made</td>
    <td>Doubles left</td>
    <td>Singles left</td>
    <td>Total in the box</td>
    </tr>
    <tr>
    <td id="tries">&nbsp;
    </td>
    <td id="doubles">80</td>
    <td id="singles">&nbsp;</td>
    <td id="total">80</td>
    </tr>
    </table>

    </body>
    </html>[/code]
    Copy linkTweet thisAlerts:
    @JMRKERJan 08.2009 — It's just not fair that "TheBearMay" types faster than me! ?
    Copy linkTweet thisAlerts:
    @TheBearMayJan 08.2009 — Lol ?
    Copy linkTweet thisAlerts:
    @AliHurworthauthorJan 08.2009 — Thank-you for your quick and accurate reply!
    ×

    Success!

    Help @AliHurworth spread the word by sharing this article on Twitter...

    Tweet This
    Sign in
    Forgot password?
    Sign in with TwitchSign in with GithubCreate Account
    about: ({
    version: 0.1.9 BETA 5.19,
    whats_new: community page,
    up_next: more Davinci•003 tasks,
    coming_soon: events calendar,
    social: @webDeveloperHQ
    });

    legal: ({
    terms: of use,
    privacy: policy
    });
    changelog: (
    version: 0.1.9,
    notes: added community page

    version: 0.1.8,
    notes: added Davinci•003

    version: 0.1.7,
    notes: upvote answers to bounties

    version: 0.1.6,
    notes: article editor refresh
    )...
    recent_tips: (
    tipper: @AriseFacilitySolutions09,
    tipped: article
    amount: 1000 SATS,

    tipper: @Yussuf4331,
    tipped: article
    amount: 1000 SATS,

    tipper: @darkwebsites540,
    tipped: article
    amount: 10 SATS,
    )...