0

好的,我很困惑,为什么这在 textarea 中没有返回 6。它不返回任何东西。我认为它与 js 作用域有关,但我无法弄清楚。

<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>
4

3 回答 3

3

去掉函数var内部的关键字Inci

var 重新声明当前范围内的变量,因此它将重新声明broj每次调用Inci.

这将是正确的方法:

var broj = 5;  

function Inci(){
   document.frmMain.VrsteHolder.value = ++broj;
}
于 2011-02-08T23:02:07.767 回答
0

因为var关键字定义了变量。var从您的功能中删除:

function Inci(){
    broj++;
    document.frmMain.VrsteHolder.value = broj;
    }
于 2011-02-08T23:02:53.033 回答
0

问题在于var其他答案的详细信息,重新声明您的变量,或者尝试这样做,并且实际上由于组合而引发语法错误。

顺便说一句,尽管我看到的更少:不要忘记您可以通过在变量之前添加 ++ (增量运算符)来增加并立即获得结果,例如:

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

你可以在这里测试那个版本

于 2011-02-08T23:04:32.913 回答