[BreezingForm] Calcul entre champ & retour arrière

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

  • [RÉGLÉ] [BreezingForm] Calcul entre champ & retour arrière

    Bonjour

    J'avance tout doucement dans l'élaboration de mon formulaire sous breezingform , j'en suis aux tests afin de déceler les incohérences, les erreurs de celui-ci.

    Il me reste quelques points à régler, que je découvre à fur et à mesure de mes tests.

    1° Comment peut-on mettre en place une vérification entre deux champs de telle façon par exemple que si le deuxième champ est inférieur au premier, un message d'erreur s'affiche en dessous de la saisie et empêche de continuer.

    longueur extérieure 20
    longueur intérieure 22

    Erreur, la longueur intérieure doit être inférieure à la longueur extérieure.

    2° lorsque j'appuie sur le bouton retour arrière lors de la saisie, la touche ne fonctionne pas, car tous mes contrôles (vide, entier, choix) me l’empêchent. Et a-t-il moyen de régler ce problème tout en gardant les données introduites auparavant par l'utilisateur afin qu'il puisse corriger les données qu'il juge utiles.

    Merci beaucoup
    Dernière édition par carabao à 14/07/2020, 08h00
    Cordialement,
    carabao

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

  • #2
    Bonjour.

    Pour revenir à la page précédente sans passer par la validation, rends-toi dans les scripts de BF (menu de gauche).
    Recherche le script nommé "Validate Previous Page" ("Valide et page précédente" si tu as la librairie en français), corrige le code comme suit :

    Code:
    function ff_validate_prevpage(element, action)
    {
    // if(typeof bfUseErrorAlerts != 'undefined'){
    // JQuery(".bfErrorMessage").html('');
    // JQuery(".bfErrorMessage").css("display","none");
    //}
    
    // error = ff_validation(ff_currentpage);
    // if (error != '') {
    // if(typeof bfUseErrorAlerts == 'undefined'){
    // alert(error);
    // } else {
    // bfShowErrors(error);
    // }
    // ff_validationFocus('');
    // } else{
    if(ff_currentpage > 1){
    ff_switchpage(ff_currentpage-1);
    self.scrollTo(0,0);
    }
    // }
    } // ff_validate_prevpage
    Pour invalider le champ "longueur intérieure" s'il est supérieur au champ "longueur extérieur".

    Se rendre dans les propriétés du champ "longueur intérieure", dans la zone "Validation", cocher "Obligatoire" et type de validation "Personnalisé".
    Entrer le message qui doit apparaître en cas d'erreur.
    Créer le code Framework
    Remplacer
    Code:
    if (element_fails_my_test)
    par

    Code:
     if ( ff_getElementByName('elem1').value <= ff_getElementByName('elem2').value )
    Dans le code ci-dessus, remplacer elem1 et elem2 par les noms réels de tes champs.

    Non seulement un message apparaîtra lors du clic sur le bouton envoyer (ou suivant) mais ça empêchera l'envoi du formulaire si la valeur n'est pas corrigée.
    Cordialement.
    __
    Eddy !!!
    Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

    Commentaire


    • #3
      Merci beaucoup pour ton aide, c'est fonctionnel. Maintenant dommage que l'erreur de n'affiche pas directement après la deuxième saisie (qui doit être plus petite que la 1er) mais cela fonctionne.

      Bon tests toujours en cours.
      Cordialement,
      carabao

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

      Commentaire


      • #4
        Si cela t'intéresse, j'ai écrit un script de bibliothèque qui valide le contenu numérique du champ, et sa supériorité par rapport au second qui doit bien entendu porter un nom bien précis. En pièce jointe…
        Fichiers joints
        carabao aime ceci.
        Cordialement.
        __
        Eddy !!!
        Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

        Commentaire


        • #5
          Merci beaucoup. Une bête question, j'installe ton zip via le "configuration" "install package" ? Ou c'est un autre chemin.

          Et une autre question, la modification que tu m'as proposée " https://forum.joomla.fr/forum/joomla...37#post2018337 " . Est-elle permanente pour le script et comment peut-on revenir à l'état initial du script en cas où ?


          Cordialement,
          carabao

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

          Commentaire


          • #6
            Toute installation de package se fait par ce chemin. Il faut toutefois extraire le XML du zip et installer ce XML.

            Un affichage en live avec alert p.ex. se repeterait sans cesse...

            Il y a d'autres possibilités mais ça demande un développement un peu plus approfondi.


            Pour revenir à l'état initial du script, il suffit de décommenter mais il ne sera alors plus effectif pour ce formulaire. Mais crois-moi la validation pour un retour arrière est souvent plus qu'inutile.

            En cas de besoin, il est également possible de dupliquer le script, changer son nom et l'adapter de sorte qu'on a les deux versions disponibles.
            Dernière édition par Eddy.vh à 12/06/2020, 19h03
            Cordialement.
            __
            Eddy !!!
            Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

            Commentaire


            • #7
              Malheureusement, j'ai fais l'erreur d'écraser, je pense, peut-on retrouver le script initial pour le réinstaller en cas où Ou est-il toujours disponibles pour les futurs autres formulaires ?
              Cordialement,
              carabao

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

              Commentaire


              • #8
                Le script initial peut être récupéré en décommentant toutes les lignes qui ont été commentées lors de la modification précédente, comme je le précise dans mon message précédent.
                Cordialement.
                __
                Eddy !!!
                Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                Commentaire


                • #9
                  Rebonjour,

                  J'ai modifié ton script pour ajouter pour vérifier si le champ est bien rempli




                  function ff_longueurinterieure_validation(element, message)
                  {
                  if ( ff_getElementByName('longueurduchassis').value <= ff_getElementByName('longueurinterieure').value ) {
                  if (message=='Erreur:') message = element.name+ "Dim int. (longueur): La dimension intérieure est supérieure ou égale à la dimension extérieure.\n"
                  ff_validationFocus(element.name);
                  return message;
                  }

                  if ( ff_getElementByName('longueurinterieure').value =='') {
                  if (message=='Erreur:') message = element.name+ "Dim int. (longueur): Veuillez introduire une valeur.\n"
                  ff_validationFocus(element.name);
                  return message;
                  }
                  // if
                  return '';
                  } // ff_longueurinterieure_validation

                  Mais apparemment le deuxième test ne fonctionne pas.

                  Ps dans le champ Message d'erreur : j'ai mis "Erreur:"
                  Cordialement,
                  carabao

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

                  Commentaire


                  • #10
                    Tu te compliques la vie inutilement.
                    Ėcris tes scripts seulement quand BF ne te les propose pas.
                    Dans le cas d'un test de contenu d'une valeur, la bibliotheque propose en script de validation : ff_valuenotempty

                    Il suffit de l'utiliser.
                    Dernière édition par Eddy.vh à 12/07/2020, 15h20
                    Cordialement.
                    __
                    Eddy !!!
                    Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                    Commentaire


                    • #11
                      merci.
                      Effectivement mais alors je ne parviens pas à faire deux tests différents.

                      1° avec ton script valeur plus petite
                      2° valeur absente avec les scripts prédéfinis

                      la gestion du message d'erreur différent (ton script et le script défini) me parait impossible dans ce cas, vu que dans ton script teste message=="".

                      Ou alors, je passe à côté du problème.
                      Dernière édition par carabao à 12/07/2020, 17h31
                      Cordialement,
                      carabao

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

                      Commentaire


                      • #12
                        Oups, mon erreur, je n'ai pas fait gaffe au fait que tu utilisais ce script de validation.

                        Faut que je fasse un test mais aujourd'hui, c'est dimanche, le PC est en standby.

                        Je reviendrai plus tard sur la question. Rappelle-moi si je n'y pense pas.
                        Cordialement.
                        __
                        Eddy !!!
                        Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                        Commentaire


                        • #13
                          Ok, merci et bon dimanche à toi
                          Cordialement,
                          carabao

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

                          Commentaire


                          • #14
                            Bonjour.

                            Je viens de me pencher sur la question.
                            Je t'avais écris un script de bibliothèque (ff_value_lower) que je t'avais mis à disposition plus haut dans ce fil de discussion.
                            Si tu suis ses instructions et que tu l'utilises sur le champ qui reçoit la valeur supérieure, le test se fait sur le contenu et sur la supériorité par rapport au second champ.

                            Bonne semaine.
                            Dernière édition par Eddy.vh à 13/07/2020, 21h51
                            carabao aime ceci.
                            Cordialement.
                            __
                            Eddy !!!
                            Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                            Commentaire


                            • #15
                              Merci, cela fonctionne

                              J'ai simplement dupliqué le script 3 fois pour pouvoir mettre un message d'erreur différents pour la longueur, largeur et hauteur (ff_value_lower_longueur, ff_value_lower_largeur, ff_value_lower_hauteur)

                              Encore merci
                              Cordialement,
                              carabao

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

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X