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..