我创建了一个小表单,但 if / else 结构在第二次尝试时挂起

I created a small form but the if / else structure hangs on the second try

我有一个计算一个人年龄的表格。我写了两个函数。第一个进行计算,第二个 returns 一些 if/else 语句。 if/else 语句有问题。无论年龄多大的人,JS总是returns第二个if。我不知道如何解决这个问题。

有人可以帮助我吗?

HTML

<!DOCTYPE html>

<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="stile.css">
    </head>
    <body>

        <form id="anni">

        <input type="text" id="annoattuale">

        <input type="text" id="nascita">

        <button type="submit">Calcola</button>

    </form>
       
        
        
        <script src="script.js"></script>
    </body>
</html>

JS 代码

anni.onsubmit = function (e) {

e.preventDefault()




let attualita = document.querySelector("#annoattuale").value

let nascita = document.querySelector("#nascita").value






let calcolaEta = (attuale, annodiNascita) => attuale - annodiNascita


let calcolatriceEta = calcolaEta(attualita, nascita)


condizioniEta(calcolatriceEta)


    function condizioniEta (calcoloEta) {


    if(calcoloEta === 18) {

        console.log(`Hai ben ${calcoloEta}! Sei appena maggiorenne!`)
    }


    else if(calcoloEta >= 29) {

        console.log(`Hai ben ${calcoloEta}! Sei un giovane piuttosto maturo`)

    }


    else if(calcoloEta >= 49) {

        console.log(`Hai ben ${calcoloEta} e ti stai avvicinando alla vecchiaia`)

    }

    else if(calcoloEta >= 59) {

        console.log(`Hai ben ${calcoloEta} e sei entrato nella vecchiaia`)
    }

    else if(calcoloEta >= 69) {

        console.log(`Hai ben ${calcoloEta}... Ti potrebbe rimanere poco tempo da vivere...`)
    }

    else if(calcoloEta >= 89) {

        console.log(`Hai ben ${calcoloEta}... La morte è quasi vicina...`)
    }

    
}

所以一个问题是对变量和函数使用相同的名称。另一个问题是你没有用“限制”创造条件。

例如假设年龄是 60 岁,这个数字大于或等于 29,所以如果并且将输入它,那么它在 else 上为真。所以你需要创建一个费率[最大值和最小值]

anni.onsubmit = function (e) {

e.preventDefault()




let attualita = document.querySelector("#annoattuale").value

let nascita = document.querySelector("#nascita").value






let calcolaEta = (attuale, annodiNascita) => attuale - annodiNascita


let calcolatriceEta = calcolaEta(attualita, nascita)

condizioniEta(calcolatriceEta)
    

function condizioniEta (calcoloEtaChanged) {

        if(calcoloEtaChanged === 18) {

            console.log(`Hai ben ${calcoloEtaChanged}! Sei appena maggiorenne!`)
        }


        else if(calcoloEtaChanged >= 29 && calcoloEtaChanged >= 48) {

            console.log(`Hai ben ${calcoloEtaChanged}! Sei un giovane piuttosto maturo`)

        }


        else if(calcoloEtaChanged >= 49 && calcoloEtaChanged <= 58) {

            console.log(`Hai ben ${calcoloEtaChanged} e ti stai avvicinando alla vecchiaia`)

        }

        else if(calcoloEtaChanged >= 59 && calcoloEtaChanged <= 68) {

            console.log(`Hai ben ${calcoloEtaChanged} e sei entrato nella vecchiaia`)
        }

        else if(calcoloEtaChanged >= 69 && calcoloEtaChanged <= 88) {

            console.log(`Hai ben ${calcoloEtaChanged}... Ti potrebbe rimanere poco tempo da vivere...`)
        }

        else if(calcoloEtaChanged >= 89) {

            console.log(`Hai ben ${calcoloEtaChanged}... La morte è quasi vicina...`)
        }

        
    }
}