Search code examples
javascriptvariablesglobal-variableslocal-variablesscopes

Problem with variable scope in javascript


Ok I am definitely puzzled, why this is not returning 6 in textarea. It doesn't return anything. I figured that it has something to do with js scopes, but i cant figure it out.

<body>

    <script language="Javascript">
    var broj = 5;  

    function Inci(){
    var broj++;
    document.frmMain.VrsteHolder.value = broj;
    }

    </script>

    <form name="frmMain" method="get" action="script.php">

    <textarea name="VrsteHolder" rows="4"> </textarea>
    <input type="button" value="Dodaj porudzbinu" name="buttonDodaj" onClick="Inci();"/> 

    </form>

</body>

Solution

  • Get rid of the var keyword inside of the Inci function.

    var redeclares variables in the current scope, so it will redeclare broj every invocation of Inci.

    This would be the correct way:

    var broj = 5;  
    
    function Inci(){
       document.frmMain.VrsteHolder.value = ++broj;
    }