Non ho una pagina pubblica, sono degli esercizi che faccio in locale man mano che leggo il libro. E' una semplice pagina dove ho inserito un:

1) FORM (perch� volevo provare ajax + php per mandarmi una mail a me stesso con i dati inseriti nel form)
2) UN GIOCHINO DI DADI che avevo fatto in javascript/jquery per esercitarmi.

Inizialmente chiedevo di inserire un nome tramite un prompt e tutto funzionava. Immagazzinavo il valore in una variabile e lo chiamavo dove mi serviva:

var taldeitali = prompt("Inserisci il tuo nome)
var sfidante = new Giocatori(taldeitali)

Il problema � iniziato quando volevo sfruttare l'INPUT #nome del form al posto del prompt.

Ovviamente il valore della input la recupero quando invio il form da qui l'esigenza di:

codice:
$("#mioForm")on("submit", function() {
    e.preventDefault();
    var x = $("#nome").val() // qui recuperavo il valore
});
var x con il valore dell'input non posso metterla fuori l'evento altrimenti il campo non avrebbe nessun valore (perch� l'evento submit non sarebbe ancora stato dato). Giusto?

Quindi avevo pensato, come avevo scritto in precedenza, di inizializzare var x fuori e dentro l'evento richiamare x (senza var) per aggiornare la variabile ma credo non si possa fare. Infatti si dice:

La vita di una variabile inizia quando una funzione � chiamata e finisce quando una funzione � terminata e la function dentro l'evento (dopo submit) credo non faccia eccezione. E' corretto ci� che dico?

Infatti ho fatto una semplice prova:

codice:
var x = 5;

function changeN() {
  x = 15;
  document.getElementById("demo").innerHTML = "demo: "+ x; 
}

var el = document.getElementById("click");
el.addEventListener("click", changeN); // quando parte l'evento scatena la funzione changeN e mi aggiorna la x e mi stampa 15.

document.getElementById("demo2").innerHTML = "demo2: " + x; // qui invece mi stampa 5 ovvero il valore iniziale perch� non c'� la funzione che mi aggiorna TEMPORANEAMENTE il valore.
Pensavo si potesse fare. Se non ricordo male in python se aggiorni una variabile lo fa e basta, non solo temporaneamente. Pensavo che funzionasse allo stesso modo.

E' corretto ci� che ho detto o mi sono sbagliato?

Forse la soluzione sarebbe portare tutto il resto dello script all'interno di quelle evento.. non penso di poter mettere solo var sfidante = new Giocatori(x) perch� sfidante la uso anche in altre funzioni..