Donnez vie à vos documents numériques !
 

Deux champs texte dont un seul en lecture seule. – RÉSOLU

abracadabraPDF Forums PDF – Général Deux champs texte dont un seul en lecture seule. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44398
    adrith
    Participant

    Bonjour,

    Voici le contexte, une personne rempli beaucoup de champ dans la page 1 du document (la fiche de renseignement), et toutes les valeurs de ces champs sont ensuite réparties et copiés sur les autres pages du document (dans le contrat). Les champs dans la fiche et dans le contrat portent bien sur le même nom (pour la copie instantanée) et j’aimerais que les champs du contrat soient en readonly. Mais comme ils portent le même nom, si je mets en readonly dans le contrat, ils le sont aussi dans la fiche. Et c’est embêtant pour saisir.  :Smiley03:

    Je cherche donc à appliquer un code javascript sur les champs du contrat mais je bloque. :doute:

    J’ai testé diverses choses dont ce code qui fonctionne mais uniquement quand je le place pour tout le document, mais il me bloque alors mes deux champs fiche et contrat. Ce code ne fonctionne pas quand je le mets sur mon champ en mode “Exécuter un script javascript” :

    Code:
    var f = this.getField(“Monsieur_Nom”);
    f.readonly = true;

    Est-ce déjà possible ce que je veux faire, si oui comment ?

    Merci bien.

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

    Bonjour,

    Si 2 champs partagent le même nom ils partagent aussi la propriété read-only (lecture seule).
    Donc il ne faut pas qu’ils aient le même nom.

    Par-contre on peut copier la valeur de l’un vers l’autre.
    A placer en script de calcul dans le champ read-only :

    this.getField(“NOM-DU-CHAMP“).value = event.target.value;

    Où NOM-DU-CHAMP est le nom du champ accessible par l’utilisateur.

    :Smiley15:

    #54377
    adrith
    Participant

    Merci Merlin, tant pis si ce n’est pas possible.
    Bonne soirée

    #54378
    Merlin
    Maître des clés

    Ben… Ci-dessus j’explique que c’est possible, mais en faisant autrement.
    Le résultat est le même.

    :bonjour:

    #54379
    maxwyss
    Membre

    Il est commun d’avoir des champs de copie ou je ne veux pas que l’utilisateur change des valeurs. Pour passer des informations du champ d’entrée il y a plusieurs possibilitiés (notez que le champ d’entrée porte le nom “champDEntree” et les champs de copie “champDEntröö_1”:

    • “push”: lorsque la valeur dans le champ d’entrée est confirmée, elle est poussée vers les champs de copie. Dans l’événement Validation du champ d’entrée on a le code suivant:

    this.getField(event.target.name + “_1”).value = event.value ;

    notez que cette ligne de code est reutilisable, si la convention de nom de champs est maintenue; on pourrait même créer une fonction au niveau du document.

    • “pull”: lorsque la valeur dans le champ d’entrée est confirmée, la sequence de calcul est executée automatiquement, et donc, on peur executer le code suivant dans l’événement Calcul:

    event.value = this.getField(event.target.name.substr(0, event.target.name.length-2)).value ;

    (pour avoir du code portable).

    Personellement, je préfère la première méthode parce qu’elle provoque moins de calculs, et est donc plus performante.

    HTH

    Max Wyss.

    #54380
    adrith
    Participant

    Bonjour,

    Merci à vous 2.
    Donc effectivement je vais me rabattre à changer les noms de mes champs, ça va être long car j’ai beaucoup de champs et donc il va falloir modifier et vérifier tout le code. Mais au moins j’aurais mes champs dans le contrat en read-only. L’idée de la fonction me plait beaucoup, ça m’éviterai d’avoir à placer le code sur chaque champ, je vais essayer de faire ça.
    Merci bien.

    #54381
    Merlin
    Maître des clés

    Non, il ne faut pas changer le nom de tous les champs : ce n’est pas scriptable et il faudrait tout faire manuellement.

    Le mieux est de supprimer tous les champs sauf un, de le renommer et d’ajuster ses propriétées, et ensuite de le dupliquer autant de fois que nécessaire en utilisant la fonction “Créer plusieurs copies” disponible au clic-droit.

    :bonjour:

    #54382
    adrith
    Participant

    Oui je vois ce que tu veux dire mais mes champs (environ 50) ont quasiment tous des propriétés différentes.

    Certains n’autorisent que des chiffres, d’autres que du texte, d’autres sont limité à onze caractères, certains sont des listes déroulantes… Donc, il faut vraiment être rigoureux et faire champ par champ je pense.

    #54383
    adrith
    Participant

    Bonjour,

    C’est ok, mon document est parfait maintenant avec des champs readonly dans les champs de copie.
    Cette commande m’a bien aidé:

    this.getField(event.target.name + “_1”).value = event.value ;

    Merci encore à ce forum.
    A+

    #54384
    Merlin
    Maître des clés

    :bonjour:

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