Tramquillo, comunque il tutto funziona anche senza chiudere il select.
E' come sta sulle dispense del professore... (questo ti dovrebbe far capire che elemento sia...) ^__^
Tramquillo, comunque il tutto funziona anche senza chiudere il select.
E' come sta sulle dispense del professore... (questo ti dovrebbe far capire che elemento sia...) ^__^
Si, funziona! ^___^
Grazie del GRANDE aiuto...
P.S: Ho paura vi porro i miei altri (sicuri) dilemmi dopo ogni lezione del mio strampalato Professore...
EUREKA!
Il tuo codice sicuramente funziona, ma hai usato le variabili e non sono presenti nell'esame.
Quinidi l'esercizio poteva essere risolto senza le variabili, ed infatti così è stato... si trattava del doppio uguale.
Ti ringrazio moltissimo.
Ora però vorrei che al posto dei numeri il codice funzioni anche con delle stringhe, cioè scrivendo (o selezionando) i nomi dei mesi.
Se uso al posto del campo text un tag select e do alle varie opzioni i valori di 1, 2,ecc, pensi che funzioni?
Mmm... adesso provo.
Grazie ancora dell'aiuto.
Ciao Jantima,
dove mi segnali tu, il punto è virgola non l'ho messo perchè c'è la parola riservata ELSE e il comando non finisce dove dici tu ma dopo ELSE.
In pratica il comando inizia da IF e sta a significare che:
SE (if) il valore di mn è minore del valore di ma, il valore di r è unguale al valore di aa meno il valore di an.
ALTRIMENTI (else) il valore di r è uguale al valore di aa meno il valore di an, meno 1.
Il mio problema non è che questo comando non funzioni, funziona eccome quindi non è errato.
E funziona anche l'altro pezzetto di codice SINGOLARMENTE che restituisce l'età esatta se il campo del mese di nascita è minore o maggiore del campo del mese attuale.
Il prolema (che mi sta snervando perchè tra 10 giorni ho un esame! :() è che il tutto smette di funzionare se unisco nel medesimo file js questi due codici che invece singolarmente fanno ciò che io voglio.
Per risponderti Jantima, i due codici li metto di seguito dentro la funzione calcola, separati da ;
Eviedentemente sta quì l'errore e c'è un modo per legarli insieme e far si che tutte queste condizioni coesitano e pagherei oro per capire quele sia il modo...
Se qualcuno ha voglia di prendere questi codici e provarli in file html e js e mi aiutasse a scoprire il codice esatto finale, gli sarei immensamente grato... di modo da capire la logica, dove sta l'errore
Salve a tutti, sono nuovo del forum e questo è il mio primo messaggio.
Ho un DISPERATO bisogno di capire come mai il codice javascript contenuto nel file js collegato alla seguente pagina html, mi funziona solo in parte!
Allora, il seguente è il codice html.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Calcolo dell'età esatta</title>
<script language="JavaScript" type="text/javascript" src="PASSO DUE - 6.js">
</script>
</head>
<body>
<b>PASSO 2 - Es: 6</b><br>
<i>Roberto Cilia</i><br>
Funzione che calcola gli anni esatti di una persona.<br>
<center>
<form action="" name="eta">
<b> - Data di Nascita - </b><br>
gg: <input type="text" name="ggN">
mm: <input type="text" name="mmN">
aaaa: <input type="text" name="aaaaN"><br>
<b> - Data Attuale - </b><br>
gg: <input type="text" name="ggA">
mm: <input type="text" name="mmA">
aaaa: <input type="text" name="aaaaA"><br>
<input type="button" value="calcola" onclick="
calcola (eta.ggN, eta.mmN, eta.aaaaN,
eta.ggA, eta.mmA, eta.aaaaA,
eta.ris);
">
<input type="reset" value="Azzera">
<input type="text" name="ris" readonly="readonly"><br>
</form>
</center>
</body>
</html>
Invece il file PASSO DUE - 6.js dove sono contenuti i comandi javascript è il seguente:
function calcola (gn, mn, an, ga, ma, aa, r){
if ((mn.value = ma.value) &&
(ga.value >= gn.value))
r.value = aa.value -
an.value;
if ((mn.value = ma.value) &&
(ga.value < gn.value))
r.value = (aa.value - an.value) -1;
}
E questo codice calcola esattamente l'età quando il valore inserito nel campo del mese di nascita è uguale a quello del mese attuale, tenendo conto del valore che si inserisce nel campo dei giorni.
Es: Data di nascita: 4 7 1984
Data attuale 3 7 2007
Anni: 22
Il seguente codice allo stesso modo funziona confrontando se il campo del mese di nascita è maggiore o minore del campo del mese attuale.
E SINGOLARMENTE funziona:
function calcola (gn, mn, an, ga, ma, aa, r){
if (mn.value < ma.value)
r.value = aa.value -
an.value
else
r.value = (aa.value - an.value) -1;
}
Il problema è che quando unisco le due parti, quest'ultima non funziona più e il programma non funziona ovviamente...
Cosa c'è che non va?
Spero qualcuno possa aiutarmi...