abracadabraPDF › Forums › PDF – Général › Limiter un champ à une plage de saisie
- Ce sujet est vide.
-
CréateurSujet
-
10 mars 2016 à 16:16 #45375
jeanine63000
MembreBonjour,
J’ai cherché dans les rubriques, mais je n’ai pas trouvé comment faire pour limiter dans un champ la valeur de saisie. Exemple : je souhaite que la personne ne saisisse dans le champ que les chiffres situés entre 0 et 6. Comment faire et où inscrire le script.
Merci par avance de vos réponses.
-
CréateurSujet
-
AuteurRéponses
-
11 mars 2016 à 08:50 #60456
alex
ParticipantBonjour à tous,
Voici ci-joint l’illustration de plusieurs types de contrôles de saisie.
1-Contrôle après saisie complète sur un champ non formaté. Saisie limitée aux nombres de 0 à 9
2-Contrôle du digit unique sur un champ non formaté . Saisie limitée à un nombre du segment 0-6
3-Contrôle digit par digit sur un champ non formaté . Saisie limitée aux nombres de 0 à 6
4-Contrôle standard sur un champ formaté nombre sans recours à un script.
Par ailleurs je vous joins une table ASCII qui vous permettra de retrouver les codes à utiliser dans les scripts.11 mars 2016 à 08:53 #60457alex
ParticipantEt voici les exemples (on est limité à une pièce jointe apparemment).
11 mars 2016 à 09:05 #60458jeanine63000
MembreMerci Alex.
Je ne comprends pas pourquoi le script indique 54 et 48 alors que la limite est 6
if(codedigit>54|codedigit<48){saisieOK=false;}
Si par exemple je veux limiter la saisie à un chiffre compris entre 0 et 4, qu’est-ce que j’inscris ?
Merci pour de plus amples explications, si le temps vous le permets…
11 mars 2016 à 09:49 #60459
MerlinMaître des clésJe ne comprends pas pourquoi le script indique 54 et 48 alors que la limite est 6
Les chiffres utilisés dans le script correspondent au code ASCII des caractères « 0 » et « 6 ».
11 mars 2016 à 09:56 #60460
MerlinMaître des cléscomment faire pour limiter dans un champ la valeur de saisie.
Remercions Alex pour sa réponse très complète, cependant Adobe a prévu une méthode plus simple, dans l’onglet Format des Propriétés il faut déclarer le champ en format Nombre et ensuite ça se passe dans l’onglet Validation, voir capture jointe.
11 mars 2016 à 09:59 #60461
MerlinMaître des clés(on est limité à une pièce jointe apparemment)
Je ne sais plus s’il y a une limite, mais on peut en mettre plusieurs.
11 mars 2016 à 10:53 #60462jeanine63000
MembreBonjour,
2 solutions pour une question, c’est parfait. Que demander de plus.
Merci beaucoup pour votre investissement, très précieux pour l’ensemble des utilisateurs de ce site « magique ».
12 mars 2016 à 08:52 #60463alex
ParticipantEt oui, j’ai eu tort de mettre la solution basique d’Adobe (sans script) en quatrième position de mon exemple:
4-Contrôle standard sur un champ formaté nombre sans recours à un script.
Elle aurait du figurer en tête!
Cependant, dès qu’on sort de cet usage basique (limitation de la saisie à une plage numérique unique min/max), le script s’impose et permet des analyses beaucoup plus fines (plages multiples et disjointes, saisies combinées de chiffres et de caractères alphanumériques, et autres contraintes) et des alertes adaptées.12 mars 2016 à 09:00 #60464
MerlinMaître des clésJustement, je cherche en ce moment comment interdire la saisie de chiffres dans un champ texte, de la même façon que pour les lettres dans un champ Nombre (juste un bip) et curieusement je ne trouve aucun exemple ni documentation nulle part. Y compris sur les forums américains.
En fait ce qui me manque c’est surtout la formule qui détecte si la saisie est un chiffre.
Aurais tu une idée ?13 mars 2016 à 08:14 #60465alex
ParticipantBonjour Merlin,
Voici une nouvelle maquette dédiée à la détection des saisies non numériques dans un champ texte. Je pense que l’item 3 répond à ton problème. A chaque fois qu’un digit est saisi on teste sa nature en s’assurant que son code ASCII est bien sur le segment 0-9 (codes ASCII 48 à 57).Conseillé:
Onglet Format: script de touches personnalisé:saisie=this.event.change;
codedigit=saisie.charCodeAt(0);
if(codedigit>57|codedigit<48)
{
this.event.change= » »;
app.beep(0);
}Nota: pas de beep sur Mac !
13 mars 2016 à 09:04 #60466
MerlinMaître des clésConseillé:
Onglet Format: script de touches personnalisé:saisie=this.event.change;
codedigit=saisie.charCodeAt(0);
if(codedigit>57|codedigit<48)
{
this.event.change= » »;
app.beep(0);
}En fait c’est l’inverse que je voudrais faire : pouvoir tout saisir sauf les chiffres.
Malheureusement quand j’inverse la formule if(codedigit>57|codedigit<48) en if(codedigit<57|codedigit>48) on ne peut plus rien saisir du tout dans le champ.
:Euuuh:13 mars 2016 à 10:13 #60467alex
ParticipantPOur interdire la saisie des chiffres….
Un peu de logique combinatoire:
Onglet Format: script de touches personnalisé:saisie=this.event.change;
codedigit=saisie.charCodeAt(0);
if(codedigit<57&codedigit>48)
{
this.event.change= » »;
app.beep(0);
}13 mars 2016 à 10:30 #60468
MerlinMaître des clésUn peu de logique combinatoire:
saisie=this.event.change;
codedigit=saisie.charCodeAt(0);
if(codedigit<57&codedigit>48)
{
this.event.change= » »;
app.beep(0);
}Mais bon sang, mais c’est bien sur ! :oh:
Inverser les « <" ne pouvait pas suffire… Pas bien réveillé moi ce matin… :geek:
Merci. :bravo:Question subsidiaire : quelle est la différence entre & et &&, et entre | et || ?
Que j’en mette un ou deux j’obtiens toujours le même comportement, mais j’imagine qu’il doit y avoir une petite différence quelque part ?14 mars 2016 à 10:27 #60469alex
ParticipantLe & est destiné à la manipulation des nombres binaires:
exemple avec les nombres 3 et 9 en binaire:
3 & 9
3 = 0 0 1 1 en binaire
9 = 1 0 0 1 en binaire
L’opérateur donne 1 car:
. 0 0 1 1
& 1 0 0 1
0 0 0 1&& est le ET de la logique combinatoire
(condition1 && condition2)
vaut true si les 2 conditions sont vraies(true en JS), false sinon.Conclusion: j’aurais du, en toute rigueur choisir &&
14 mars 2016 à 10:36 #60470
MerlinMaître des clésMerci.
:bonjour: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
