Проблема с переменной областью в JavaScript - PullRequest
0 голосов
/ 09 февраля 2011

Хорошо, я определенно озадачен, почему это не возвращает 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>

Ответы [ 3 ]

3 голосов
/ 09 февраля 2011

Избавьтесь от ключевого слова var внутри функции Inci.

var переопределяет переменных в текущей области, поэтому он будет переопределять broj при каждом вызове Inci.

Это будет правильный путь:

var broj = 5;  

function Inci(){
   document.frmMain.VrsteHolder.value = ++broj;
}
0 голосов
/ 09 февраля 2011

Проблема в том, что var подробно отвечает на другие вопросы, перераспределяет вашу переменную или пытается , а фактически выдает синтаксическую ошибку из-за комбинации.

Кроме того, что я вижу меньше: не забывайте, что вы можете увеличивать и получать результат немедленно, имея ++ ( оператор увеличения ) перед переменной Например:

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

Вы можете проверить эту версию здесь .

0 голосов
/ 09 февраля 2011

потому что ключевое слово var определяет переменную.Удалите var из вашей функции:

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