Buongiorno a tutti, ho un problema con un esercizio riguardante un convertitore di Valute. Probabilmente è un errore stupido ma, nonostante abbia inserito valute e fattori di conversione corrispondenti in un array associativo, è come se non fossero collegati. Ho inserito le valute in un menù a tendina creato dinamicamente in Javascript e collegato ad una select vuota in HTML, ma passando da una valuta all'altra non cambia il valore nel campo del fattore . Vi ringrazio in anticipo per l'aiuto
function Convertitore () {
this.valutaCorrente;
this.fattoreCorrente;
this.imposta =
function (valuta, fattore) {
this.valutaCorrente = valuta;
this.fattoreCorrente = fattore;
}
this.converti =
function (importo) {
return this.valutaCorrente + " " +
importo * this.fattoreCorrente;
}
}
function gestoreImposta () {
try {
var nodoMC = document.getElementById("messaggioConverti");
nodoMC.innerHTML = "";
var nodoV = document.getElementById("valuta");
var valuta = nodoV.value;
var fattore = valutaFattore[valuta];
var nodoF = document.getElementById("fattore");
nodoF.value = fattore;
c.imposta(valuta,fattore);
} catch ( e ) {
alert("gestoreImposta: " + e);
}
}
function gestoreConverti () {
try {
var nodoMC = document.getElementById("messaggioConverti");
nodoMC.innerHTML="";
var nodoI = document.getElementById("importo");
if (nodoI.value == " ") {
nodoMC.innerHTML="l'importo \u00E8 vuoto";
return;
}
var importo = Number(nodoI.value);
if (isNaN(importo)) {
nodoMC.innerHTML=nodoI.value + " non \u00E8 un numero";
return;
}
if (importo <= 0) {
nodoMC.innerHTML="l'importo non \u00E8 valido";
return;
}
var nodoR = document.getElementById("risultato");
nodoR.value = c.converti(importo);
} catch ( e ) {
alert("gestoreConverti " + e);
}
}
function opzioniValuta () {
var s = " ";
for (var i in valutaFattore) {
s += "<option>" + i + "</option>";
}
return s;
}
var valutaFattore = {
LIT :1937.26,
USD :0.95,
YEN :0.13
}
var c;
function inizializza () {
try {
c = new Convertitore();
var nodoMC = document.getElementById("messaggioConverti");
nodoMC.innerHTML="";
var nodoC = document.getElementById("converti");
nodoC.onclick = gestoreConverti;
var nodoV = document.getElementById("valuta");
nodoV.innerHTML = opzioniValuta();
var nodoI = document.getElementById("importo");
nodoI.value = "";
var nodoR = document.getElementById("risultato");
nodoR.value = "";
gestoreImposta();
} catch ( e ) {
alert("gestoreLoad: " + e);
}
}
window.onload = inizializza;