(Risolto)Non capisco dove sta l'errore mah

di il
4 risposte

(Risolto)Non capisco dove sta l'errore mah


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bevi o non bevi</title>
</head>
<body>
    <form >
        <input type="text" name="" id="Nome" placeholder="Inserisci Nome">
        <input type="text" name="" id="Cognome" placeholder="Inserisci il Cognome">
        <input type="text" id="Età" placeholder="Inserisci l'età">
        <input type="button" value="Invia" id="Calcola">
    </form>

    <script>
        let nome=document.getElementById("Nome").value;
        let cognome=document.getElementById("Cognome").value;
        let età=document.getElementById("Età").value;
        let calcola=document.getElementById("Calcola");
        calcola.onclick=function(e){
            if (età < 18) {    
  
                document.write('Sei minorenne non puoi bere');    
                }
            else
            {
                document.write('Meraviglioso ti buoi bere una bella birra');
            }
        }
     
    </script>

</body>

</html>
Non mi funziona eppure mi sembra tutto ok non capisco dove sta l'errore, quando lo eseguo non mi entra dentro l'else qualsiasi età inserisco mi esegue solo l'if.

4 Risposte

  • Re: (Risolto)Non capisco dove sta l'errore mah

    
    let calcola = document.getElementById("Calcola");
            let result = document.getElementById("result");
    
            calcola.addEventListener('click', (e) => {
                e.preventDefault()
                let nome = document.getElementById("Nome").value;
                let cognome = document.getElementById("Cognome").value;
                let età = document.getElementById("Età").value;
    
                if (parseInt(età) < 18) {
                    result.textContent = `Sei minorenne ${nome} ${cognome}, non puoi bere.`
                }
                else {
                    result.textContent = `Meraviglioso ${nome} ${cognome}, ti puoi bere una bella birra.`
                }
            })
    
  • Re: (Risolto)Non capisco dove sta l'errore mah

    Ma se al mio codice faccio solo un parse nell'if non funziona uguale?
  • Re: (Risolto)Non capisco dove sta l'errore mah

    Ciao

    No, il tuo codice aveva un errore di fondo:
    - Il browser caricava la pagina
    - Appena ha caricato la pagina (o mentre la sta caricando) prende i valori dei campi e li salva nelle variabili... Lo fa qui, perchè esterni all'evento onClick
    - Quando si scatena l'envento onClick, valuta la variabile che ha estratto subito dopo il caricamento della pagina, quindi prima che l'utente inserisca i dati


    Nel codice che ti hanno postato come risposta, invece, i valori vengono presi durante l'evento "onClick", quindi dopo che l'utente li ha inseriti.
    Poi, giustamente, fanno il parse per convertire la stringa (valore estratto) in numero (valore da usare per il confronto)
  • Re: (Risolto)Non capisco dove sta l'errore mah

    Ok grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte