Donnez vie à vos documents numériques !
 

"Surveillance de champ" – Script de validation permanent. – RÉSOLU

abracadabraPDF Forums PDF – Général "Surveillance de champ" – Script de validation permanent. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44139
    Soupull
    Membre

    Bonjour @ tous,

    Je sèche sur la problématique suivante.
    Comment provoquer un script de validation d’un champ alors même que son contenu peut être alimenté par un autre champ. En détail j’ai :

    Une liste déroulante qui contient le script de validation suivant (version simplifié) : 

    Code:
    var a = this.getField(“champ_cible”);
    if (event.value == “choix1”)
    {a.value = “valeur1”};

    mon champ_cible lui contient le script de validation suivant :

    Code:
    if(event.value <= 100)
    {event.target.textColor = [“RGB”,1,0,0];}
    else

    if(event.value >= 100)
    {event.textColor = [“RGB”,0,0,0];}

    Prix séparément l’un de l’autre, ces script de validation fonction, ma liste de choix rempli bien ses champs cible, et si je saisie manuellement des valeur dans mes champ_cible, les couleur passe bien du noir au rouge et vice-versa.

    Le souci est que si la valeur du champ_cible est rempli par le script de validation de ma liste déroulante…bah la couleur bouge pas :(
    Du coup je cherche la piste, un script dans le document ? une ligne supplémentaire dans la validation de mon champ_cible ?

    Merci par avance pour tout [vos bonne idées] / [exemples] / [solutions clé en mains] (rayer la mention inutile).

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

    Salut,

    pour moi le plus rationnel serait d’utiliser un script de validation commun.
    Maintenant, pour l’exemple clé en main, le mieux serait que tu ci-joigne ton fichier ou une page d’exemple avec les champs concernés.
    (Avec une préférence pour la 2e solution qui permet de laisser l’exemple à disposition sur ces pages.)

    :Smiley01:

    #52850
    Soupull
    Membre

    Re,

    le fait de fabriquer un modèle d’exemple ,m’a fait trouver en partie mon erreur :) En effet j’avais mal frappé ma commande else en frappant event.textColor au lieu de event.target.textColor permettant de revenir à du noir si la valeur est correct.

    Bref, j’arrive à un résultat satisfaisant, mais je suis curieux d’apprendre ton option de script commun pour une telle validation.

    Merci par avance.

    [attachment deleted by admin]

    #52851
    Merlin
    Maître des clés

    Au final j’ai fait encore plus simple, plutôt que d’exécuter une validation commune à tous les champs j’ai bien séparé les rôles :

    – La liste déroulante envoie les valeurs, sans rien faire d’autre.

    – Chaque champ texte à une vérification autonome de sa propre valeur qui détermine la couleur du texte.
    L’astuce c’est de placer la vérification en script de calcul et non pas en script de validation.

    Validation : événement déclenché par un changement de valeur du champ concerné, et seulement de celui-là (fonctionnement similaire à l’action “champ désactivé” : la modification de la valeur via un script ne déclenche pas l’événement).
    Calcul : événement déclenché chaque fois que n’importe quel champ du formulaire est modifié.

    – Cette vérification autonome est placée en fonction (script de document) pour une meilleure optimisation de la vitesse d’exécution et rendre sa maintenance/modification plus facile.

    Ci-joint.

    :Smiley01:

    [attachment deleted by admin]

    #52852
    Soupull
    Membre

    Super, merci d’avoir détaillé cette approche.  :bravo:

    Petite question, est il possible de définir un setup pour la valeur minimum pour chaque champ.
    Dans l’exemple, les 2 cellules se teinte en rouge en passant sous la valeur des 100, mais dans mon vrai cas j’ai 12 champs avec chacun un seuil différent.

    #52853
    Merlin
    Maître des clés

    Petite modif. par rapport à la version précédente : au lieu de déclarer la valeur de seuil (100) dans la fonction on la place en variable.
    Ensuite, chaque champ initialise sa propre valeur de variable avant d’exécuter la fonction.

    :bonjour:

    [attachment deleted by admin]

    #52854
    Soupull
    Membre

    Redoutable !

    En bon débutant, J’ignorais les interactions possible entre script niveau document et variable niveau champ, ca m’ouvre des perspective puissante pour mes réalisation en cours !

    Un grand merci

    #52855
    Merlin
    Maître des clés

    :Smiley15:

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