parseInt() ha scritto:
Se scrivo la variabile dove ho commentato che funziona, allora va tutto come dovrebbe (la scrivo lì e non la scrivo piu sopra); se scrivo la variabile dove ho commentato che non va (e solo lì) allora non va più niente.
Cosa vuol dire "non va più niente"? Se parli della logica generale, probabilmente la causa è dovuta al fatto che quell'
if() che si basa sul valore della variabile fallisce, ma non perché la variabile non esista o sia dichiarata altrove, ma perché tu
nella dichiarazione fai anche l'assegnamento del valore!
Se tu dichiari la variabile nella funzione e contestualmente gli assegni il valore, in quel caso tutto va per il verso giusto perché hai agganciato quella funzione all'evento
blur() della casella che contiene il valore che usi per la variabile. Se invece assegni il valore all'esterno, questo sarà sicuramente errato perché
ancora non hai scritto nulla nella casella.
Il problema non riguarda il punto in cui dichiari la variabile, bensì il contesto in cui le assegni il valore, e dato che questo dipende dal contenuto di un controllo di input presente nella pagina, se lo fai all'inizializzazione della stessa il valore non potrà mai essere corretto.
Ma questo problema non ha nulla a che vedere con bug del browser o di JavaScript, problemi con la visibilità delle variabili e quant'altro: hai commesso un errore di logica di programmazione.
Non c'è una condizione in cui il programma "va" oppure "non va": il programma va sempre ed esegue quello che tu gli dici di fare, solo che hai sbagliato a dirgli cosa fare e/o in che tempi.
Ciao!