Donnez vie à vos documents numériques !
 

Envoi d’un formulaire après Validation

abracadabraPDF Forums PDF – Général Envoi d’un formulaire après Validation

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45357
    mouchka
    Membre

    Bonjour,
    Tout d’abord un grand merci pour l’aide que vous apporter à tout un chacun.
    Je sollicite vos compétences aujourd’hui pour un problème sans doute bête mais dont je n’arrive pas à me sortir.
    J’ai créé un formulaire avec différents champs de texte à remplir obligatoirement ainsi qu’une liste déroulante permettant de choisir une personne, ce qui me renvoie automatiquement l’adresse de messagerie de cette personne.

    A la fin du formulaire, un bouton Submit auquel est associé un script qui a deux fonctions: 1/ contrôler que chaque champ obligatoire est bien rempli et 2/ une fois la vérification faite, envoyer le formulaire à 2 adresses dont l’une est définie par la liste déroulante.

    Le problème que je rencontre est que je n’arrive pas à avoir ces deux fonctions en même temps: soit le formulaire est envoyé autant de fois qu’il y a de champ valide, soit il est envoyé systématiquement.

    Merci d’avance de votre aide

    Voici le script:
    // Définition des variables d’envoies du formulaire
    var fSubject = « Sujet »
    var fTo = « adresse@email.fr »
    var fCc = this.getField(« Adresse »).value;
    //
    // Détection des champs vide et envoi du formaulaire
    console.clear();
    console.println(« Detection champ obligatoire vide. »);
    indexField=0;
      while(indexField  {
      nameField=this.getNthFieldName(indexField);
      ff=this.getField(nameField);
          if(ff.type== »text »)
          {
            if(ff.required)
            {
            console.println(indexField+ »-Examen champ text obligatoire «  »+nameField+ » » »);
            console.println(« Valeur= »+ff.value);
                if(ff.value!= » »)
                {
                console.println(« Saisie valide. »);
                }
                else
                {
                app.alert(« Saisie obligatoire manquante…r( champ «  »+nameField+ » » ) »,1);
                ff.setFocus();
                //Sortie
                break;
                }
            }
          }
          indexField=indexField+1;
      }
    this.mailDoc({cTo:fTo,cCc:fCc,cSubject:fSubject});

Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Auteur
    Réponses
  • #60340
    Merlin
    Maître des clés

    Bonjour.

    Faute de pouvoir répondre directement je te propose ce script.
    En plus de donner le nom du champ concerné, il l’encadre en rouge et il met le focus dessus. Il traite les champs un par un.
    Il faut juste savoir que le nom de champ indiqué dans l’alerte est le « userName » du champ, autrement appelé en français « Info-bulle » (Propriétés du champ : Général), ce qui permet d’utiliser un nom plus sexy et plus explicite pour l’utilisateur que « IPP-texteEmail-111.0.02.b » (par exemple).

    Mais si on a déjà des noms de champs explicites ou si juste on préfère on peut utiliser « nameField » à la place de ‘userName« .  :Smiley15:

    Code:
    console.clear();
    var variableObligat = « oui »;
    var emptyTest = /^s*$/;
      for(var i=0;i  var nameField = this.getNthFieldName(i);
      var fld = this.getField(nameField);
          if(fld.type== »text ») {
            if(fld.required) {
            console.println(« Nom du champ =  » + nameField + « rNom utilisateur :  » + fld.userName);
                if(emptyTest.test(fld.value)) {
                var alertOblig2 = « Champ «  » + fld.userName + «  ».nn » + « Ce champ est obligatoire. Merci de le corriger. »;
                app.alert({cMsg: alertOblig2, cTitle: « COUCOU », nIcon: 1});
                var variableObligat = « non »;
                fld.strokeColor = rougeCorporate;
                fld.setFocus();
                break;
                }
                else {fld.strokeColor = color.transparent;}
            }
          }
      }
    if (variableObligat == « oui ») {
    console.println(« C’est tout bon pour les champs obligatoiresr »);
    // script d’envoi de l’email
    }

    Et pour bien faire les choses jusqu’au bout pour l’utilisateur on utilisera ce script dans tous les champs obligatoires (on peut le faire en une seule fois les sélectionnant tous) :

    Code:
    event.target.strokeColor = color.transparent;

    On le placera en « Souris enfoncée » (Mouse down) ou en « Champ désactivé » (On blur), comme on préfère ou selon les cas.

    #60341
    mouchka
    Membre

    Bonsoir Merlin,

    Ca marche Nickel !
    Un très grand merci de partager vos connaissances et compétences: j’ai encore appris grâce à vous.
    Bonne soirée

    #60342
    Merlin
    Maître des clés

    :bonjour:

Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.