Action quand clic sur Annuler pop-up 'prompt'

Résolu
nicodak Messages postés 51 Statut Membre -  
nicodak Messages postés 51 Statut Membre -
Bonjour,

Voici une fonction pour calculer la surface d'un cercle en renseignant le rayon, elle fonctionne parfaitement.

function surfaceCercle(){
    var rayon=parseFloat(prompt("Entrez le rayon du cercle : "));
    return Math.PI*rayon*rayon;
}


Voici maintenant le code HTML associé
<p>
    Cliquez sur le bouton pour lancer la fonction :
    <button onclick="alert('Surface du cercle  : '+surfaceCercle())">
        Lancer la fonction
    </button>
</p>


Donc je clique sur le bouton Lancer la fonction et une pop-up s'ouvre, je renseigne un rayon et une nouvelle pop-up remplace la première avec le résultat 'Surface du cercle : xxx'. Parfait.

Maintenant si je clique sur Annuler dans la première fenêtre une nouvelle pop-up s'ouvre avec le message 'Surface du cercle : NaN'. Comment faire pour que le clic sur Annuler arrête simplement la fonction et ferme la première pop-up sans en ouvrir une autre ?

Je ne trouve pas de solution.
Merci beaucoup.
Configuration: Windows / Firefox 85.0

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

     <button onclick="getSurface();">
            Lancer la fonction
        </button>
    


    function surfaceCercle(){
        var rayon=parseFloat(prompt("Entrez le rayon du cercle : "));
        return Math.PI*rayon*rayon;
    }
    
    function getSurface(){
     var surface = surfaceCercle();
      if( !isNaN(surface )){
        alert('Surface du cercle  : '+ surface);7
      }
    }
    
    

    0
    1. nicodak Messages postés 51 Statut Membre 1
       
      OK merci pour cette réponse.

      Donc il faut une deuxième fonction pour définir une action lors d'un clic sur Annuler dans une pop-up prompt.
      Etonnant que JS n'ait pas prévu quelque chose de plus simple, plus automatique.
      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > nicodak Messages postés 51 Statut Membre
         
        ben tu pourrais le faire en une seule fonction
        function getSurface(){
            var rayon=parseFloat(prompt("Entrez le rayon du cercle : "));
            var surface = Math.PI*rayon*rayon;
            if( !isNaN(surface )){
              alert('Surface du cercle  : '+ surface);7
            }
        }
        
        
        0
      2. nicodak Messages postés 51 Statut Membre 1 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Okayyy ! merci beaucoup.
        0