Donnez vie à vos documents numériques !
 

Répondre à : Script qui ne marche plus dans bouton radio

abracadabraPDF › Forums › PDF – Général › Script qui ne marche plus dans bouton radio › Répondre à : Script qui ne marche plus dans bouton radio

#76668
bebarth
Maître des clés

bonjour,
Enfin un problème !!!

Je suis un peu surpris que ton script fonctionnait en 2024 alors que c’est le même qu’en 2026…
Tu écris ... +f.value.replace(/^(M.\s)|(Mᵐᵉ\s)... alors que les valeurs de tes boutons radios sont « Mr » et « Mme », ce qui n’est pas du tout la même chose.
Le script des boutons radios est dépend d’une action Souris relâchée, la valeur ne peut donc jamais être « Off » et la condition if (event.target.value!="Off") n’est donc pas nécessaire; Il suffit donc juste d’écrire :
this.getField("nom").value=event.target.value+" "+this.getField("nom").value.replace(/^(Mr\s)|(Mme\s)/,"");

Dans ton champ « nom » j’ai placé et adapté un script de calcul récupéré d’un de mes précédents scripts :
function minusculeSaufApresSeparateur(texte) {
// Vérification des espaces
texte=texte
.toLowerCase()
.replace(/[\s]+/g," ")
.replace(/^[\s]/,"")
.replace(/[\s]$/,"")
.replace(/[\s](['’])/g,"$1")
.replace(/(['’])[\s]/g,"$1");
return texte.replace(/(^|[\s\-'’])([^\s\-'’])/g,function(mot,separateur,caractere,position,chaine) {
var i=position+mot.length; // indice du caractère suivant
var suivant=chaine.charAt(i);
// "d" ou "l" suivi d'une apostrophe -> reste en minuscule
if ((caractere=="d" || caractere=="l") && (suivant=="'" || suivant=="’")) return separateur+caractere;
// Mot "de" isolé -> reste en minuscule
if (caractere=="d" && suivant=="e" && /^([\s\-'’]|$)/.test(chaine.charAt(i+1))) return separateur+caractere;
return separateur+caractere.toUpperCase();
});
}
try {
event.target.value=minusculeSaufApresSeparateur(event.target.value);
} catch(e) {}
if (event.target.value=="Mr" || event.target.value=="Mme") event.target.value=event.target.value+" ";

Normalement tout fonctionne bien.

@+
😎

PS : L’erreur indique dans la console pour le champ date venait du script de document avec une erreur de syntaxe. Il fallait écrire :
...
f.value = util.printd("dddd dd mmmm yyyy", new Date());

  • Cette réponse a été modifiée le il y a 2 semaines par bebarth.
Attachments:
You must be logged in to view attached files.