Bouton de validation  (Lu 181 fois) Partager ce sujet Imprimer

1 B


GERYGOLPA  21 août 2020 : 11:08

Bonjour,

suite a plusieurs recherche sur ce Forum (qui m'a été d'une grande aide jusqu’à maintenant), je rencontre un problème : le script JavaScript suivant placé sur un bouton simple (champ activé) valide très bien tous mes champs obligatoires et m'alerte sur le champ en question. IMPECCABLE

Je souhaiterais avoir une alerte quand tous mes champs sont OK et par la même occasion que si tous les champs sont ok que mon champ signature apparaisse (mais seulement et seulement si les champs sont validés).
Un dieu du JavaScript peut 'il m'aider ?
Merci d'avance pour vos réponses.

CODE:

console.clear();
console.println("Detection champ obligatoire vide.");
indexField=0;
   while(indexField<this.numFields)
   {
   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;
            }
         }
      }
      if(ff.type=="combobox")
      {
         if(ff.required)
         {
         console.println(indexField+"-Examen champ combobox obligatoire \""+nameField+"\"");
         console.println("Valeur="+ff.value);
            if(ff.value!=""&ff.valueAsString.charAt(0)!=" ")
            {
            console.println("Saisie valide.");
            }
            else
            {
            app.alert("Saisie obligatoire manquante...\r( champ \""+nameField+"\" )",1);
            ff.setFocus();
            //Sortie
            break;
            }
         }
      }
   indexField=indexField+1;
   }


IP archivée


GERYGOLPA  18 septembre 2020 : 13:18

Bonjour,je relance le sujet
personne pour m'aider ?


IP archivée


bebarth  18 septembre 2020 : 20:12

bonjour,
On part du principe où ton champ signature n'est pas visible :
this.getField("champSignature").display=display.visible;
J'ai réécris ton script, tu vérifieras si je n'ai pas fait d'erreur, car je n'ai pas testé vu que je n'ai pas ton fichier !
console.clear();
console.println("Detection champ obligatoire vide.");
var OK=1;
for (var indexField=0; indexField<this.numFields; indexField++) {
    nameField=this.getNthFieldName(indexField);
    ff=this.getField(nameField);
    if(ff.required && (ff.type=="text" || ff.type=="combobox")) {
        console.println(indexField+"- Examen champ "+ff.type+" obligatoire \""+nameField+"\".");
        console.println("Valeur="+ff.value);
        if (ff.type=="text" && ff.value!="" && ff.valueAsString.charAt(0)!=" ") {
            console.println("Saisie valide.");
        } else {
            app.alert("Saisie obligatoire manquante...\r(champ \""+nameField+"\").",1);
            OK--;
            ff.setFocus();
            //Sortie
            break;
        }
    }
}
if (OK) {
    app.alert("Tous les champs obligatoires sont correctement remplis.",3);
    this.getField("champSignature").display=display.visible;
}
Tu me dis.
@+
 :bonjour:

IP archivée


GERYGOLPA  21 septembre 2020 : 18:29

Salut,Merci de prendre du temps pour aider.Je viens de tester plus rien ne fonctionne, je n'ai plus d'alerte lorsqu'un champ est vide.Je te joint la fiche se sera plus simple pour toi

IP archivée


bebarth  21 septembre 2020 : 21:09

bonsoir,
Il fallait juste rajouter un "try catch" sur le test de la valeur du champ requise, car cette propriété n'existe pas pour les boutons......
    try {
        if(ff.required && (ff.type=="text" || ff.type=="combobox")) {
            console.println(indexField+"- Examen champ "+ff.type+" obligatoire \""+nameField+"\".");
            console.println("Valeur="+ff.value);
            if (ff.type=="text" && ff.value!="" && ff.valueAsString.charAt(0)!=" ") {
                console.println("Saisie valide.");
            } else {
                app.alert("Saisie obligatoire manquante...\r(champ \""+nameField+"\").",1);
                OK--;
                ff.setFocus();
                //Sortie
                break;
            }
        }
    } catch (e) {};
...
@+
 :bonjour:

PS : On peut remplacer "try catch" par "if (ff.type!="button")"...
 

IP archivée


GERYGOLPA  22 septembre 2020 : 10:29

Impeccable

encore Merci



IP archivée


GERYGOLPA  27 septembre 2020 : 21:28

Re Bebarth revoilà le chiant

Dit moi depuis que j'ai ajouté un champ liste déroulante ma validation bloque sur se champ.Je pense qu'il faut ajouté un ff.type==""  mais je ne sais pas lequel
Merci

IP archivée


bebarth  28 septembre 2020 : 11:40

bonjour,
Si tu as décidé d'opter pour l'option "if", il faut écrire :
...
if (ff.type!="button" && ff.type!="ff.type!="combobox"")
...
@+
 :bonjour:

IP archivée


GERYGOLPA  28 septembre 2020 : 16:14

Merci de ton retour
J'avoue je suis perdu je la rajoute a quel endroit cette ligne dans le script ?

IP archivée


bebarth  Hier à 10:31

bonjour,
Dit moi depuis que j'ai ajouté un champ liste déroulante ma validation bloque sur se champ.Je pense qu'il faut ajouté un ff.type==""  mais je ne sais pas lequel
Je reviens sur ta question : qu'est-ce qui bloque exactement ???
Si tu as utilisé mon fichier exemple, ça devrait fonctionner !
@+
 :bonjour:

IP archivée


GERYGOLPA  Hier à 10:46

le script que tu m'a donné (avec le try catch)fonctionne très bien avec mes champs texte.par contre ayant ajouter un champ liste déroulante lié a un fichier .csv , au moment de la validation des champs celui ci me dit sans cesse qu'il n'est pas rempli .

IP archivée