Donnez vie à vos documents numériques !
 

Validation d’un champ Sexe (H ou F). – RÉSOLU

abracadabraPDF Forums PDF – Général Validation d’un champ Sexe (H ou F). – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43957

    Bonjour,

    Je suis nouveau sur ce forum et j’ai fouillé un peu pour voir s’il n’y avait pas de sujet par rapport à ma question, mais on dirait bien que non. J’ai aussi fouillé sur d’autres sites à la recherche de ce que j’ai besoin, mais je n’ai trouvé que quelques bribes qui fonctionnent plus ou moins. Donc, je me trouve ici à vous demander votre aide.

    Voilà, je suis en train de monter un formulaire interactif où des gens entrent leurs informations personnelles (nom, prénom, sexe et date de naissance). Ensuite, un script fait générer un code automatique à partir des informations entrées.

    J’ai donc un champ Sexe où les gens doivent entrer la lettre de leur sexe (H ou F). Je veux donc valider s’ils ont bien inscrit une des deux lettres et dans le cas contraire, je veux qu’il y ait un alert indiquant un erreur. Je vous mets donc mon script qui semblent avoir une bonne base mais ne fonctionne pas.

    Votre aide serait grandement apprécié, merci beaucoup!

    var f = this.getField(« Sexe1 »);
    if ((f.value !== « H ») || (f.value !== « F »)) {
    event.rc=false;
    app.alert({
    cMsg: « Veuillez indiquer le bon format pour le sexe (H ou F). »,
    cTitle: « Erreur »
    });
    }

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Auteur
    Réponses
  • #51666
    alex
    Participant

    Pour respecter votre logique voici le script à embarquer dans le champ de saisie:

    //Pour visualiser la console Ctrl-J ou Pomme-J sur Mac
    //Reset console.
    console.clear();
    //Captage valeur saisie
    ff=this.event.value;
    //Affichage valeur console.
    console.println(« Valeur lue: »+ff);
    if ((ff == « H ») |(ff == « F »))
    {
    //Affichage information sur console.
    console.println(« Saisie valide! »);
    //Alerte facultative
    app.alert({
    cMsg: « Le format est bon!. »,
    cTitle: « Confirmation »,
    nIcon:3
    });
    }
    else
    {
    //Affichage information sur console.
    console.println(« Saisie invalide! »);
    //Alerte de saisie incorrecte
    app.alert({
    cMsg: « Veuillez indiquer le bon format pour le sexe (H ou F). »,
    cTitle: « Erreur »,
    nIcon:1
    });
    }

    Ci-joint une maquette illustrant votre exemple.
    Cela dit, pourquoi ne pas utiliser un simple bouton radio (trois occurences: Homme, Femme, Non coché, valeur par défaut Non coché) avec une analyse de validité à postériori?

    Petite remarque: avez-vous bien réfléchi à la validité de votre expression logique (f.value !== « H ») || (f.value !== « F ») Hum?

    [attachment deleted by admin]

    #51667
    Lionel
    Membre

    Bonjour,

    C’est une bonne solution pour la solution telle qu’elle est exposée.  :PouceHaut:

    Mais ne serait-il pas plus simple de mettre deux boutons; avec réponse obligatoire et la possibilité qu’un seul des deux boutons soit coché (en donnant le même nom à ces deux boutons).  :Euuuh:

    Bien cordialement.
    Lionel :bonjour:

    #51668

    Merci beaucoup alex, cette solution semble bien fonctionner! Par contre, je ne cherche pas à avoir de message quand c’est correct, seulement quand il y a un erreur. Et j’ai pensé au bouton radio, mais le client n’aime pas vraiment cette solution, même si elle est clairement plus logique..

    Si c’est différent de H ou F, il y a un message d’erreur qui apparaît en alert..

    Donc, le sigle pour différent de n’est pas !=, est-ce que ça serait plutôt ?

    #51669

    Bon! J’ai réussi à faire fonctionner le tout! J’ai remarqué une toute petite chose, mais si ce n’est pas possible, ce ne serait pas plus grave que ça!

    Est-il possible que s’il y a un erreur, que le champ de texte reste toujours actif tant que H ou F n’est pas inscrit. En ce moment, il y a un alert qui apparait, mais si on le ferme, on peut passer à un autre input et l’erreur reste dans la case malgré tout.

    Merci beaucoup encore!

    #51670
    Lionel
    Membre

    Bonjour,

    Bravo que cette solution fonctionne (mais là avec Alex cela ne fait aucun doute). Ceci-dit, je persiste que -de plus- il n’est guère dans les habitudes d’utilisation de mettre une lettre dans un champ pour ce style de choix. En général, on coche une case…

    Lionel :bonjour:

    #51671

    Totalement d’accord avec toi Lionel, mais bon, avec des clients un peu têtus, on fait ce qu’on peut!

    Finalement, pour ma dernière question à savoir si le champ peut rester actif tant et aussi longtemps que H ou F n’est pas entré, il y aurait la possibilité que le champ redevienne vide s’il a erreur.

    Quelque chose dans ce genre..

    var g = this.getField(« Sexe1 »);

    …et dans mon if d’erreur :
    g.value = «  »;

    Par contre, ça ne semble pas fonctionner.. Qu’est-ce que j’ai fait de pas correct?

    #51672
    alex
    Participant

    C’est peut-être l’attente de nouveaux genres qui impose le choix du champ texte? Mais bon, on se tient au problème posé.
    En ce qui concerne l’équation il y a une erreur de logique combinatoire  si on admet que !== est remplacé par != .
    Le (différend de ) est utilisé par exemple dans les expressions des formules sous tableurs Excel, pas en JavaScript.
    Enfin, il est possible de positionner le focus sur le champ de saisie si la saisie est incorrecte par:

    this.getField(« Sexe1 »).setFocus();
    Mais cette méthode ne peut être lancée depuis le script embarqué par le champ.
    C’est tout pour aujourd’hui. Bonne soirée.

    #51673
    Lionel
    Membre

    Bonsoir,

    Totalement d’accord avec toi Lionel, mais bon, avec des clients un peu têtus, on fait ce qu’on peut!

    Ok.  :D

    Il est évident que s’il prévoient, par exemple, un nouveau genre…  :siffle:

    Bonne soirée.
    Lionel :bonjour:

    #51674
    Merlin
    Maître des clés

    Bonjour,

    j’arrive après la bataille mais ne serait-il pas plus simple de limiter les entrées du champ de texte plutôt que de le contrôler a-posteriori ?
    Faute de case-à-cocher on peut toujours utiliser un menu déroulant JavaScript sur un champ de texte…
    Exemple ci-joint.
    ;)

    PS : bon, pas moyen d’envoyer une pièce jointe de là où je suis, ce sera pour demain…

    #51675
    Merlin
    Maître des clés

    Le voilà.

    [attachment deleted by admin]

    #51676
    Lionel
    Membre

    Bonjour,

    Le voilà.

    Il serait sans doute judicieux de verrouiller le champ de texte en écriture car, une fois le choix fait dans le menu, il est possible de modifier le contenu du champ.
    En outre, si on a modifié, le menu ne fonctionne plus (il n’affiche plus de lettre dans le champ de texte).

    À bientôt.
    lionel :bonjour:

    #51677
    Merlin
    Maître des clés

    Si on verrouille le champ, le menu déroulant ne peut pas apparaître…
    :idee:

    Cependant, après un menu déroulant qui propose ce choix il faudrait vraiment tomber sur LE sadique qui ira se donner la peine de modifier manuellement la valeur provenant du menu.
    ;)

    #51678
    Merlin
    Maître des clés

    On peut aussi limiter les entrées du champ à un seul caractère, et éventuellement forcer la saisie en capitale.
    :idee:

    Et cela n’empêche pas non plus d’utiliser en plus le script de contrôle ci-dessus, mon idée c’est surtout d’améliorer la présentation, pas le contrôle de la saisie.
    ;)

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