abracadabraPDF › Forums › PDF – Général › texte seulement
- Ce sujet est vide.
-
CréateurSujet
-
22 janvier 2010 à 14:39 #43763letofusMembre
bonjour
je souhaiterai savoir s’il est possible d’obliger un utilisateur à entrer du texte dans un champ de texte
la complexité est qu’il doit pouvoir rentrer : espace, -, _, /,
par exemple pour rentrer : la charrité sur Loire ou / Loire..
je n’ai encore rien trouvé de satisfaisant
donc, ouvert à toute proposition (décente) :extra:
merci par avance -
CréateurSujet
-
AuteurRéponses
-
22 janvier 2010 à 18:25 #50526alexParticipant
Je suppose qu’il s’agit d’interdire la saisie des chiffres dans ce champ. Dans ce cas un petit script JS pourrait sans doute répondre à la problèmatique si aucune autre astuce ne s’annonce…
23 janvier 2010 à 09:40 #50527letofusMembreOui c’est en fait cela, interdire les chiffres
23 janvier 2010 à 11:08 #50528alexParticipantSous Acrobat PRO 7,8,9, formulaire créé avec AcroForm.
Dans chaque champ de saisie où le même contrôle s’impose,onglet Format>
Catégorie de format>Personnalisé
Script de touches personnalisé, insérer le script générique qui suit:
AnalyseSaisie()
Au niveau document, Options avancées>Traitement du document>Scripts JavaScript…>
Créer la fonction AnalyseSaisie.
function AnalyseSaisie()
{
console.clear();
//Récupération du nom du champ de saisie:
NomChampSaisie=event.target.name;
console.println(“Saisie dans le champ “+NomChampSaisie);
Chaine=this.getField(NomChampSaisie).value;
console.println(“Chaine avant traitement=”+Chaine);
//Tableau des caractères à exclure
CaracteresExclus=new Array();
CaracteresExclus=[0,1,2,3,4,5,6,7,8,9];
//Analyse du caractère saisi
indexC=0;
while(indexC{
if(event.change==CaracteresExclus[indexC]&event.change!=””)
{
app.alert(“Saisie de chiffres proscrite!”,1);
event.change=””;
}
indexC=indexC+1;
}
}Ci-joint fichier de démonstration, vous pouvez ajouter des champs, modifier les caractères proscrits…
[attachment deleted by admin]
23 janvier 2010 à 12:09 #50529MerlinMaître des clésTrop d’la balle Alex !
:bravo:Si ça intéresse quelqu’un, le script inverse (saisie de chiffres uniquement : pour conserver le(s) zéro(s) à gauche dans les n° de tél et les codes postaux, ce que ne font pas les champs au format “nombre”) existe déjà. Je m’en sert (presque) quotidiennement :
Code:if (event.change.charCodeAt(0) > 13)
{
if (event.change.charCodeAt(0) < 48 || event.change.charCodeAt(0) > 57)
{app.beep ();
event.rc = false;
}
}A placer en “script de touches personnalisé”.
D’ailleurs si quelqu’un savait comment modifier ce script pour autoriser, en plus des chiffres, la saisie du point (.) et du plus (+) que l’on trouve aussi dans les n° de tél je lui en serait très reconnaissant…
:priere:
23 janvier 2010 à 15:36 #50530alexParticipantMerlin, un petit effort en JavaScript… La réponse est presque à portée de main dans l’exemple qui précède en définissant cette fois la liste des caractères autorisés au lieu des exclus et en adaptant les tests!
Allez23 janvier 2010 à 17:28 #50531MerlinMaître des clésC’est un script que j’ai récupéré (presque) tel quel : je n’y comprend en fait pas grand-chose… je ne sais même pas s’il fonctionne avec une liste noire ou une liste blanche…
:Euuuh:23 janvier 2010 à 17:56 #50532letofusMembreMerci, merci beaucoup
mais JE sui un gros nase :mur:
j’ai oublié dans mon premier message de préciser que c’était pour livecycle
mais sinon bravo, c’est génial :bravo:23 janvier 2010 à 18:32 #50533alexParticipantCe script passe par les équivalents ASCII des caractères (ici ce sont les codes ASCII des chiffres 48 est le code ASCII de 0, jusqu’à 57 qui est le code ASCII de 9), à partir de là le code est facile à lire: toute saisie dont l’équivalent ASCII est inférieur à 48 ou supérieur à 57 est rejeté. Ce code est élégant dans ce cas particulier.
Pour résoudre ton problème, on peut adapter le code que je vous ai proposé ou celui-ci, au choix….23 janvier 2010 à 18:55 #50534MerlinMaître des clésJ’arrive à bluffer mon monde parce que j’arrive à lire le code JavaScript, à y changer les noms des champs et des variables.
Mais je suis par exemple bien incapable de rajouter une bête condition à une autre, ce qui m’a fait renoncer (provisoirement) à une importante amélioration de l’interface des abracadabraTOOLS dans la dernière version.:oh:
23 janvier 2010 à 22:29 #50535letofusMembredonc si jamais quelqu’un sait si c’est possible avec livecycle designer…perso je ne pense pas
mais bon ce n’est pas si grave non plus :geek:24 janvier 2010 à 07:44 #50536alexParticipantJe fais une synthèse de toutes les solutions AcroForm (ASCII et classique) et LiveCycle Designer lundi.
24 janvier 2010 à 08:46 #50537MerlinMaître des clés:bravo:
:contentdance:25 janvier 2010 à 17:13 #50538alexParticipantContrôle de saisies numériques avec AcroForm:
Script 1: saisie des chiffres uniquement (inspiré du script de Merlin).
Script 2: saisie des chiffres, points et +.
Script 3: saisie des chiffres, un points et un +.[attachment deleted by admin]
25 janvier 2010 à 17:57 #50539MerlinMaître des clésGénial !
Dans le script 3 : il y a une alerte quand on essaye de saisir plusieurs points ou plusieurs plus mais ça n’empêche pas ces caractères d’être saisis dans le champ…
Est-ce normal ?
??:26 janvier 2010 à 09:18 #50540alexParticipantAyant revu ma copie pour le script 3….
Contrôle de saisies numériques avec AcroForm:
Script 1: saisie des chiffres uniquement (inspiré du script de Merlin).
Script 2: saisie des chiffres, points et + uniquement (variante)
Script 3: saisie des chiffres, un seul point et un seul + corrigé![attachment deleted by admin]
26 janvier 2010 à 09:48 #50541MerlinMaître des clésTrop fort Alex !
:bravo:Je n’ai plus qu’a bricoler un peu n°3 car dans ma demande j’avais complètement oublié que pour formater un n° de tél français (mais pas seulement) correctement il faut aussi autoriser la saisie d’espaceS en plus du “point” et du “plus”.
+33 0.490 123 456
ou
+33 0.4 90 12 34 5626 janvier 2010 à 10:41 #50542alexParticipantVoici la maquette pour LiveCycle Designer, pour le cas 3 je donne ma langue au chat (provisoirement). Il faut dire qu’avec Designer, on a pas mal de formats prédéfinis qui n’imposent pas l’usage du JS.
Quelqu’un relève le défi ?[attachment deleted by admin]
27 janvier 2010 à 17:28 #50543letofusMembremerci pour tout cela
ne me reste plus qu’a essayer :priere: d’inverser tout cela pour qu’on ne puisse pas saisir de chiffre dans LC
:doute:27 janvier 2010 à 18:45 #50544alexParticipantJuste un petit effort de logique combinatoire…Comme à l’école..
27 janvier 2010 à 20:52 #50545MerlinMaître des clésC’est loin… !
(l’école):geek:
27 janvier 2010 à 21:15 #50546letofusMembreen meme temps je n’ai commence sur adobe que debut decembre :
et je suis un noob en informatique :siffle:mais je vous remercie pour tout cela
27 janvier 2010 à 21:45 #50547letofusMembrere: sinon j’ai ce script
if(!/^[abcdefghijklmnopqrstuvwxyz]?$/.test(xfa.event.newText))
xfa.event.change = “”;inséré en javascript dans un champ de texte en evenement “change” dans livecycle
marche bien mais…. on ne peut taper qu’un caractère !si une ame charitable peut m’aider à le corriger
merci par avance28 janvier 2010 à 07:53 #50548alexParticipantAvec LiveCycle Designer, pour exclure les chiffres, voici la syntaxe JS qui me parait la plus simple, associée à l”évènement change du champ de saisie. J’utilise les codes ASCII des caractères, ainsi, il sera facile d’ajouter d’autres exclusions.
formulaire1.Page1.texte1::change – (JavaScript, client)
if(xfa.event.change.charCodeAt(0)>=48&xfa.event.change.charCodeAt(0)<=57)
{
app.alert(“Saisie de caractères alphabétiques uniquement!”,1);
xfa.event.change=””;
}
Ci-joint un formulaire exemple.[attachment deleted by admin]
28 janvier 2010 à 11:23 #50549letofusMembreAlors la juste deux trucs à dire
BRAVO et MERCI
:bravo: :bravo: :contentdance: :contentdance: :bravo: :bravo: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.