IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

calcul avec choix radio box


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut calcul avec choix radio box
    Bonjour,

    débutant en javascript et ayant un examen dans un mois (CNAM), j'ai vraiment du mal à réaliser les exercices de révision donnés par le prof (qui ne répond pas aux mails...)

    Il demande à taper 2 nombres dans un champ, à cocher avec une radio box une des 4 opérations possibles et à afficher le résultat avec une alerte.

    J'ai "réussi", non sans mal, mais un problème se pose: je peux cocher plusieurs cases en même temps, ce que je ne veux pas!

    Que pensez-vous de mon code? Je ne sais pas comment résoudre ce problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <script type="text/javascript">
          var resultat = 0;
          var n1= 0;
          var n2= 0;
     
            function calcul(f) {
    	  n1 = parseInt(document.getElementById('nombre1').value);
              n2 = parseInt(document.getElementById('nombre2').value);
    	  if (f.addition.checked) {resultat = n1+n2;}
    	  else if (f.soustraction.checked) {resultat = n1-n2;}
    	  else if (f.multiplication.checked) {resultat = n1*n2;}
    	  else if (f.division.checked) {resultat = n1/n2;}
    	  else {alert("erreur!")}
    	  return resultat;
    	}
        </script>
     
        <form name="monFormulaire">    
        <p>nombre 1 <input name="nombre1" id="nombre1" type="text"></p>
        <p>nombre 2 <input name="nombre2" id="nombre2" type="text"></p>
          <input type="radio" name="addition" />+
                <br />
          <input type="radio" name="soustraction" /> -
    	    <br />
          <input type="radio" name="multiplication" />*
                <br />
          <input type="radio" name="division" /> /
    	    <br />
        <input type = "button" value = "valider" onClick="alert(calcul(this.form));">
        </form>
    De plus, comment pourrais-je utiliser switch pour éviter tous ces else if?

    Merci par avance,
    Johnny3

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    les radios doivent porter le même name pour être alternatifs
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut merci!
    merci beaucoup pour cette réponse si rapide!

    J'ai modifié mon code de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <script type="text/javascript">
          var resultat = 0;
          var n1= 0;
          var n2= 0;
     
            function calcul(f) {
    	  n1 = parseInt(document.getElementById('nombre1').value);
              n2 = parseInt(document.getElementById('nombre2').value);
    	  if (f.operation[0].checked) {resultat = n1+n2;}
    	  else if (f.operation[1].checked) {resultat = n1-n2;}
    	  else if (f.operation[2].checked) {resultat = n1*n2;}
    	  else if (f.operation[3].checked) {resultat = n1/n2;}
    	  else {alert("erreur!")}
    	  return resultat;
    	}
        </script>
     
        <form name="monFormulaire">    
        <p>nombre 1 <input name="nombre" id="nombre1" type="text"></p>
        <p>nombre 2 <input name="nombre" id="nombre2" type="text"></p>
          <input type="radio" name="operation" />+
                <br />
          <input type="radio" name="operation" /> -
    	    <br />
          <input type="radio" name="operation" />*
                <br />
          <input type="radio" name="operation" /> /
    	    <br />
        <input type = "button" value = "valider" onClick="alert(calcul(this.form));">
        </form>
    Par contre, comment utiliser switch pour éviter tous les else if?

    Merci par avance,
    Johnny

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    switch (true){
        case (f.operation[0].checked) : resultat = n1+n2;
                                                   break;
        case (f.operation[1].checked) : resultat = n1-n2;
                                                   break;
        case (f.operation[2].checked) : resultat = n1*n2;
                                                   break;
        case (f.operation[3].checked) : resultat = n1/n2;
                                                   break;
       default:                                 resultat = 'erreur';
      }
      return resultat;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut
    merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dialogue box avec choix multiple (enfin je crois !)
    Par Mactao dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 02/07/2015, 14h07
  2. Boite de dialogue avec choix type radio ou select
    Par maxtrident dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/08/2014, 18h28
  3. Formulaire avec boutons radio->multi-choix
    Par pitu69 dans le forum MkFramework
    Réponses: 13
    Dernier message: 06/07/2013, 17h35
  4. bouton radio avec choix obligatoire
    Par serna dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2010, 18h24
  5. choix dans une liste avec un radio bouton
    Par spinnaker dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/03/2008, 22h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo