Donnez vie à vos documents numériques !
 

Nom propre dans Acrobat Pro X formulaire. – RÉSOLU

abracadabraPDF Forums PDF – Général Nom propre dans Acrobat Pro X formulaire. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44593
    pâquerette
    Membre

    Bonjour à tous,

    J’ai un formulaire Acrobat pro X comprenant des champs texte avec un script nom propre.  Exemple :

    event.value = event.target.value.toLowerCase();
    str = event.value;
    event.value = str.replace(/(^|s|[-,.])w/g,function(cWrd){return cWrd.toUpperCase()});

    Le problème est que si le prénom est “émile” par ex le script ne marche.
    Quelqu’un aurait-il une solution.
    Merci à tous.

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

    Pourquoi est ce que ça ” ne marche “, quel est le comportement attendu ?

    #55335
    pâquerette
    Membre

    Salut Merlin,
    Désolé pour le retard à te répondre mais, effectivement si je tappe un prénom comme émile par exemple et que j’actualise avec un bouton,le script ne fonctionne pas par contre, si je frappe “alex” par exemple l’à ça marche nikel.
    En grattant un peu, j’ai trouvé la solution, j’ai appliqué ton script  avec la petite modif “e” par “E” et l’à ça fonctionne.
    var r = ‘/(é|É|è|È|à|À|ç|Ç|ô|Ô|â|Â|î|Î|ï|Ï)/g’;
    var str = event.change;
    var match = str.match(eval(r));
    if (match)
    {
      event.change = “E”;
    }

    J’ai le même problème avec l’adresse email dont le script en minuscule fonctionne bien dans la mesure ou un bouton “actualiser les champs” n’est pas associé.
    Le bouton bloque certains scripts.
    Merci beaucoup Merlin.

    #55336
    Merlin
    Maître des clés

    Oui, mais quel est le comportement attendu ? Quel est le but du script ?
    Convertir les mots en capitales ?

    :Euuuh:

    #55337
    pâquerette
    Membre

    Bonjour Merlin,
    Pour reprendre mon précédent message, quand je tape dans un champ texte un prénom tel que “émile” (qui est parfait comme exemple), et en tenant compte des scripts ci dessous tous les “é” sont remplacés par un “E” majuscule ce qui est normal mais tous les autres “é”ou “e” du prénom sont également remplacés par un E majuscule.
    Par contre, si je supprime le script de touches personnalisé et je ne laisse que le script de format personnalisé, l’à ça marche; les premières lettres (a,b,c etc..)sont bien en majuscule mais les “é” resteront toujours en “é”.
    Donc, voici, voilà mon petit souci.
    Merci à tous.
    Cdt

    Script de format personnalisé:
    event.value = event.target.value.toLowerCase();
    str = event.value;
    event.value = str.replace(/(^|s|[-,.])w/g,function(cWrd){return cWrd.toUpperCase()});

    Script de touches personnalisé:
    var r = ‘/(é|É|è|È|à|À|ç|Ç|ô|Ô|â|Â|î|Î|ï|Ï)/g’;
    var str = event.change;
    var match = str.match(eval(r));
    if (match)
    {
      event.change = “E”;
    }

    #55338
    Merlin
    Maître des clés

    Quel est le comportement attendu ? Quel est le but du script ?

    Ter…
    :priere:

    #55339
    pâquerette
    Membre

    Le but du script est de ne mettre en majuscule que la première lettre pour faire des cartes de visites et le script ci dessous marche très bien mais quand tu tapes des (a,b,c,d etc…) mais quand on tape “émile” par exemple ça ne fonctionne pas et je pense qu’il faudrait forcer le script ou le modifier mais moi, je n’y arrive pas.
    Merci à tous

    event.value = event.target.value.toLowerCase();
    str = event.value;
    event.value = str.replace(/(^|s|[-,.])w/g,function(cWrd){return cWrd.toUpperCase()});

    #55340
    Merlin
    Maître des clés

    C’est l’excellent logiciel RegExr qui m’a donné la réponse au sujet du métacaractère w :
    Matches any word character (alphanumeric & underscore).
    Note:
    The actionscript (and JavaScript) implementation of word characters is very poor, and does not include any extended word characters, such as accented characters.

    En clair : un défaut d’implémentation fait que le métacaractère w ne fait pas correctement son travail puisqu’il ne capture pas les caractères accentués, alors qu’il le devrait…
    Pour les anglophones ce n’est pas un problème, mais pour nous c’en est un.

    Donc, dans la requête (regex) d’origine j’ai remplacé  w par .{1}, ce qui pour le coup revient au même et fonctionne aussi avec les caractères accentués.

    :extra:

    A placer en script de format personnalisé :

    str = event.target.value;
    event.value = str.replace(/(^|s|[-,.]).{1}/g,function(cWrd){return cWrd.toUpperCase()});

    [attachment deleted by admin]

    #55341
    pâquerette
    Membre

    Ok nikel Merlin, ça marche.
    Merci encore.
    A+

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