Bonjour,

Voila je rencontre un petit problème avec mon code. Je n'arrive pas à obtenir l'alerte "Veuillez saisir un nombre entre 0 et 100" lorsque l'input texte est vide.

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Imbrication de condition</title>

    <script>
        let nombre;
        let reponse; 

        nombre = Math.round(Math.random()*100); 

        function Main(){

            reponse = parseFloat(document.jeu.proposition.value); 

            if(reponse == ""){
                alert("Veullez saisir un nombre entre 0 et 100 !"); 
            }else{
                if(reponse == nombre){
                    alert("Vous avez gagné !");
                }else if(reponse < nombre){
                    alert("Indice : le nombre est plus grand !");
                }else{
                    alert("Indice : le nombre est plus petit !"); 
                }
            }
        }

    </script>
</head>
<body>
    <h3>Saisir un nombre entre 0 et 100 :</h3>
    <form name="jeu">
        <input type="text" name="proposition">
        <input type="button" value="Valider" onClick="Main();">
    </form>

</body>
</html>

2 réponses


Bonjour,
Le problème doit venir du fait que tu compare un Float avec une String.
Il faut faire la verif avant le parseFLoat.
Et pour vérifier la longueur d'une chaîne, l'utilisation de la propriété 'length' est nettement plus appropriée.

Salut,
ParseFloat("") = NaN, pas chaine vide ;)
ça sert à rien de faire 1000000 de lignes de code alors qu'une suffit :D :D
donc la réponse :

function Main(){
    reponse = parseFloat(document.jeu.proposition.value); 
    alert(isNaN(reponse)?"Veuillez entrer un nombre":reponse==nombre?"Win !!":reponse>nombre?"trop grand":"trop petit");
}

@pluche

Pierre