Soustraction nb1 - nb2

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Soustraction nb1 - nb2

    bonjour,

    j'ai suivi le tuto ci-après https://www.breezingforms.eddy-vh.co...-breezingforms et il fonctionne, merci à Eddy

    J'aimerai malgré tout ajouter une condition, la réponse Total doit être positif. Malgré mon choix de validation intergeramount , une réponse négative est validée.

    nb1 doit être plus grand que nb2 donc nb1 - nb2 = total

    Deux questions:
    pourquoi doit-on répéter le script dans les trois champ et pas uniquement dans le champ total ? Celui-ci allant chercher les valeur dans les autres champs .
    Je suppose que j'ai bon mais pourquoi cocher "modifier" pour le script d'action pour les deux premiers champs (nb1 et nb2) puis devoir effacer le script qui s'affiche pour introduire le script nb1, nb2 et ne pas cocher "modifier" pour total ?

    Merci
    Fichiers joints
    Dernière édition par carabao à 11/07/2020, 21h51
    Cordialement,
    carabao

    Site dédié à la caravane & au camping: www.caravane-camping.be

  • #2
    Bonsoir,

    SI c'est juste pour avoir la différence entre 2 nombres :

    total = math.abs(nb1 - nb2);
    carabao aime ceci.
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      Bonsoir.
      1. Pourquoi doit-on répéter le script dans les champs nb1 et nb2
        1. Parce que ce sont des actions sur ces nb1 et nb2 qui lancent le calcul. Le script dans le champ total ne fait que récupérer ce total.
          il y a moyen de n'écrire qu'un seul script dans la section scripts des options avancées du formulaire mais il devient alors un peu plus compliqué à écrire pour un non initié.
          Il est aussi possible d'écrire la script dans le champs total et d'appeler ce script à chaque modification des champs nb1 et nb2. Voir exemple en fin de post*.
      2. Pourquoi cocher "modifier" au nb1 et nb2 et pas à Total
        • Parce que ce sont les nb1 et nb2 auquel tu apportes une modification et que c'est après la modification que le script de calcul est lancé, le champ total ne faisant que se mettre à jour, il ne reçoit aucune action de la part de l'utilisateur.

      *
      Script d'action dans le champ Total
      Code:
      function ff_total_action(element, action)
      {
      
      var val1 = ff_getElementByName('nb1').value;
      var val2 = ff_getElementByName('nb2').value;
      
      if (val1 < val2 ) { // Si nb1 est inférieur à nb2
      alert('Nombre 1 doit être supérieur à nombre 2 !\n\nVeuillez ressaisir les champs'); // On affiche le message
      ff_getElementByName('nb1').value = ""; // on vide les valeurs des champs (commenter si on ne le nécessite pas).
      ff_getElementByName('nb2').value = "";
      ff_getElementByName('total').value = "";
      ff_getElementByName('nb1').focus(); // et on fait le focus sur nb1 pour recommencer
      }
      else { // sinon
      ff_getElementByName('total').value = Number(val1) - Number(val2); // on fait la soustraction
      }
      
      } // ff_total_action
      Script d'action dans le champ nb1
      Code:
      function ff_nb1_action(element, action)
      {
      switch (action) {
      case 'change':
      ff_total_action(); // on lance le script du champ total
      break;
      default:;
      } // switch
      } // ff_nb1_action
      Script d'action dans le champ nb2
      Code:
      function ff_nb2_action(element, action)
      {
      switch (action) {
      case 'change':
      ff_total_action(); // on lance le script du champ total
      break;
      default:;
      } // switch
      } // ff_nb2_action
      Dernière édition par Eddy.vh à 11/07/2020, 20h15
      carabao aime ceci.
      Cordialement.
      __
      Eddy !!!
      Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

      Commentaire


      • #4
        Merci à vous deux pour votre aide. Cela fonctionne sans soucis dans mon formulaire.

        Eddy merci pour tes explications. Donc lorsqu'on sélectionne modifier dans les scripts d'action, cela indique que le script doit être appelé lors d'une modification du champ ?
        Cordialement,
        carabao

        Site dédié à la caravane & au camping: www.caravane-camping.be

        Commentaire


        • #5
          Pour des champs de texte, listes à choix, oui.
          carabao aime ceci.
          Cordialement.
          __
          Eddy !!!
          Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X