将函数外部的值放在全局变量中

时间:2016-04-22 10:07:28

标签: javascript scope global

对不起伙计们,整个​​代码就是这个。我给你的简短形式是轻松的,但我犯了很多错误。所以,请忽略之前编写的代码并阅读本文。

在代码的底部,您还可以找到对函数的调用(它们位于另外两个files.html中)

问题是三个“window.alert”显示的值(在运行第二个函数期间)是未定义的,因为顶部没有三个声明的var或者它们不是全局的(var numero_giocatori) ; var numero_lupi; var numero_villici;)

(对不起,我多次修改了编辑。请跟新手一起做个好人;-))

enter code here
    //--------------------------------------------------------------------------------------------------------------//
//              IMPOSTAZIONI: NUMERO DI GIOCATORI                       //
//--------------------------------------------------------------------------------------------------------------//

var numero_giocatori;
var numero_lupi;
var numero_villici;

function validatore_numero_giocatori(numero_giocatori) {

var scritta_output;

    numero_giocatori = document.getElementById("digitazione_numero_giocatori").value;

        if (numero_giocatori < 8 || numero_giocatori > 24) {
            scritta_output = "Hai inserito un numero minore di 8 o maggiore di 24";
        } 
        else if (isNaN(numero_giocatori)) {
            scritta_output = "Non hai inserito un numero. <br> Inserire un numero da 8 a 24";
        }
        else {
            scritta_output = "OK!";
            alert(numero_giocatori);
            window.open("/home/enrico/Scrivania/cod-x/lup-x/gioco/impostazioni: numero lupi vs numero villici.html","_self");
        }
        document.getElementById("validazione").innerHTML = scritta_output;
    return numero_giocatori;
}
//--------------------------------------------------------------------------------------------------------------//
//              IMPOSTAZIONI: NUMERO DI LUPI VS VILLICI                                                         //
//--------------------------------------------------------------------------------------------------------------//

function scelta_modalità_di_selezione (numero_giocatori) {
    if (document.getElementById("proporzioni_random").checked){             //proporzionale random
        numero_lupi = Math.floor(Math.round(Math.random()*1) + numero_giocatori/4); //osservare bene il codice!!!
        numero_villici = numero_giocatori - numero_lupi;
        alert(numero_giocatori);
        alert(numero_lupi);
        alert(numero_villici);
        }
    else{
        alert("Ciao, ti ricordi di me?");
    }
    window.open("/home/enrico/Scrivania/cod-x/lup-x/gioco/impostazioni: creazione personaggi.html","_self");
}
//FIRST CALL HTML
<div id = "form1">
    Numero Giocatori:<input type="text" name="numero" id="digitazione_numero_giocatori"><br><br>
    <div>   
    Inserire un numero di giocatori da 8 a 24   
    <p id="validazione"></p>
    </div>
    <button type="button" onclick="validatore_numero_giocatori(numero_giocatori)">Avanti</button>
</div>

//SECOND CALL HTML
 <div id = "form2">
        Seleziona la modalità di gioco<br>
        <div>
        Random. lupi circa 1/4:<input type="checkbox" id="proporzioni_random"><br>
        Digita il numero dei lupi:<input type="text" id="proporzioni_a_scelta">
        </div>
        <button type="button" onclick="scelta_modalità_di_selezione()">Avanti</button>
</div>

2 个答案:

答案 0 :(得分:0)

  function validatore_numero_giocatori(numero_giocatori) {
  alert(numero_giocatori);
window.open("/home/enrico/Scrivania/cod-x/lup-x/gioco/impostazioni: numero lupi vs numero villici.html","_self");
document.getElementById("validazione").innerHTML = scritta_output;
return numero_giocatori;
  }

您需要将var“numero_giocatori”传递给函数。

function validatore_numero_giocatori( numero_giocatori

然后这样称呼:

validatore_numero_giocatori(numero_giocatori)

答案 1 :(得分:0)

用这个代替你的功能: 您需要访问input元素的值。

function validatore_numero_giocatori() {
  numero_giocatori = document.getElementById('digitazione_numero_giocatori').value;
  alert(numero_giocatori);
  window.open("/home/enrico/Scrivania/cod-x/lup-x/gioco/impostazioni: numero lupi vs numero villici.html","_self");
  document.getElementById("validazione").innerHTML = scritta_output;
  return numero_giocatori;
}