0

わかりました、なぜこれがテキストエリアに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 に答える