开发者

Problem with variable scope in javascript

Ok I am definitely puzzled, why this is not return开发者_运维百科ing 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>


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;
}


because the var keyword defines the variable. Remove var from your function:

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


The problem is var as the other answers detail, redeclaring your variable, or attempting to rather, and actually throwing a syntax error because of the combination.

As an aside though that I'm seeing less: don't forget you can increment and get the result immediately by having the ++ (increment operator) before the variable, for example:

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

You can test that version out here.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜