Donnez vie à vos documents numériques !
 

Navigation dans champ obligatoire et arrêter au premier qui est vide.

abracadabraPDF Forums PDF – Général Navigation dans champ obligatoire et arrêter au premier qui est vide.

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45703
    yan
    Membre

    Bonjour,

    Je suis en train de travailler sur une fonction qui passe au travers du formulaire automatiquement et qui stoppe au premier champ obligatoire vide rencontré.
    Le tout sans utiliser de variable contenant le nom des champs ainsi peut importe le formulaire, il sera très facile d’implémenter la fonctionnalité.
    La fonction fonctionne #1 sauf un petit détail, l’index des champs ne suit pas la tabulation du formulaire donc en utilisant “this.getNthFieldName(i)” il se peut que le focus se fasse sur un champ en bas sur la dernière page même si une autre champ obligatoire est vide au dessus de lui dans l’ordre de tabulation.

    Savez-vous s’il y a une façon de changer les index de champ pour que la validation se fasse dans l’ordre de tabulation ?

    Function valideObligatoire(buttonName) // buttonName sert à déterminer ou dans le formulaire la validattion doit arreter.
    {
                    var bSuccess = true;
                    var fld;
                    var sectionValidate = buttonName.split(“.”)[0]; // prendre la premiere partie du nom avant le premier “.” ainsi si bouton 2, champ 10.texte est plus grand.
                    var errMsg = “ERREUR: “
                   
                    for (var i=0; i < this.numFields; i++) // passe au travers de tout les champs
                    {
                                  fld = getField( this.getNthFieldName(i) );
                                  // si le nom du champs commence par un chiffre plus petit que le bouton.
                                  if (Number(fld.name.substr(0,sectionValidate.length)) <= Number(sectionValidate)) {
                   
                                                  // champs textes qui sont obligatoire.
                                                  if ( fld.type==”text” && fld.required ) {
                                                                  if( fld.value.length == 0 ) // si champ vide
                                                                  {
                                                                                  bSuccess = false;
                                                                                  app.alert(errMsg + fld.name);
                                                                                  fld.setFocus();
                                                                                  break;
                                                                  }
                                                  }
                                                  //champs checkbox qui sont obligatoire…
                                                  if ( fld.type==”checkbox” && fld.required ) {
                                                                  if (fld.value == “Off”) { // si aucune selection.
                                                                                  bSuccess = false;
                                                                                  app.alert(errMsg + fld.name);
                                                                                  fld.setFocus();
                                                                                  break; 
                                                                  }
                                                  }
                                  }
                    }
                    return bSuccess;
    }

Affichage d’1 réponse (sur un total de 1)
  • Auteur
    Réponses
  • #62789
    Merlin
    Maître des clés

    Bonjour.

    Savez-vous s’il y a une façon de changer les index de champ pour que la validation se fasse dans l’ordre de tabulation ?

    Non, hélas. Pourtant on a été nombreux à le demander à Adobe.

    La ruse habituelle consiste à nommer/numéroter* les champs dans l’ordre voulu et à faire tourner la boucle sur les noms de champs (et donc pas simplement sur tous les champs en vrac).

    *
    client.coordonnees.0
    client.coordonnees.1
    client.coordonnees.2
    client.coordonnees.3
    etc.

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