Put a value outside a Function in a global var

2019-08-25 00:06发布

问题:

I'm sorry guys, the entire code is this. I given you the short form to be light, but I made many mistakes. So please, ignore the code written before and read this.

At the bottom of the code you can find also the calls to the functions (They are in two other files.html)

The problem is that the value that the three "window.alert" show (during the running of the second Function) is undefined, as there aren't the three declared var on top or they aren't global (var numero_giocatori; var numero_lupi; var numero_villici;)

(I'm sorry, I changed the edit many times. Please be nice with a newbie guy ;-) )

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>

回答1:

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

You need to pass the var "numero_giocatori" to the function.

function validatore_numero_giocatori(numero_giocatori)

Then call it like this:

validatore_numero_giocatori(numero_giocatori)



回答2:

Substitute your function with this: You need to access the value of the input element.

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