abracadabraPDF › Forums › PDF – Général › texte seulement
- Ce sujet est vide.
-
CréateurSujet
-
22 janvier 2010 à 14:39 #43763
letofus
Membrebonjour
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 #50526
alex
ParticipantJe 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 #50527letofus
MembreOui c’est en fait cela, interdire les chiffres
23 janvier 2010 à 11:08 #50528alex
ParticipantSous 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 #50529Merlin
Maî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 #50530alex
ParticipantMerlin, 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 #50531Merlin
Maî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 #50532letofus
MembreMerci, 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 #50533alex
ParticipantCe 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 #50534Merlin
Maî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 #50535letofus
Membredonc 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 #50536alex
ParticipantJe fais une synthèse de toutes les solutions AcroForm (ASCII et classique) et LiveCycle Designer lundi.
24 janvier 2010 à 08:46 #50537Merlin
Maître des clés:bravo:
:contentdance:25 janvier 2010 à 17:13 #50538alex
ParticipantContrô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 #50539Merlin
Maî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 #50540alex
ParticipantAyant 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 #50541Merlin
Maî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 #50542alex
ParticipantVoici 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 #50543letofus
Membremerci 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 #50544alex
ParticipantJuste un petit effort de logique combinatoire…Comme à l’école..
27 janvier 2010 à 20:52 #50545Merlin
Maître des clésC’est loin… !
(l’école):geek:
27 janvier 2010 à 21:15 #50546letofus
Membreen 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 #50547letofus
Membrere: 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 #50548alex
ParticipantAvec 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 #50549letofus
MembreAlors 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.