Formulaire - Date de naissance - Message alerte JavaScript  (Lu 818 fois) Partager ce sujet Imprimer

1 B


Jessy  23 juillet 2019 : 15:09

Bonjour,


Je souhaite avoir un message alerte lorsque la personne n'a pas mis sa date de naissance au complet ou au format désiré tel que 1983-03-09. Je n'ai rien trouvé sur le forum à ce sujet...
Pouvez-vous m'aider?


J'ai trouvé un JS pour le message d'alerte pour un courriel non complété dans votre forum et qui fonctionne très bien. Je veux exactement la même chose mais le message doit indiquer que la date de naissance doit être saisie au format 1986-01-23
Voici le script utilisé pour le courriel :
(if(event.value == null || event.value == "")
{
  event.rc = true;
}


else
{
  if(event.value.match(/^(\w+([-+'.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$/) == null)
    {
    app.alert({cMsg:"Veuillez entrer une adresse courriel valide.\r\n\nExemple :\rtennisquebec@gmail.com", nIcon:1, cTitle:"TennisQuebec"});
    event.rc = false;
    event.target.focus = true;
    }
  else
    event.rc = true;
}


Merci beaucoup pour votre aide.




IP archivée


bebarth  23 juillet 2019 : 15:28

bonjour,
Si tu indiques un format de date yyyy-mm-dd, tu devrais avoir systématiquement un message d'erreur si le format n'est pas complet ou incorrect !
@+
 :bonjour:

IP archivée


Jessy  24 juillet 2019 : 15:12

Oui, sauf que le message indique la date en anglais yyyy-mm-dd au lieu de AAAA-MM-JJ.. d'où la nécessité d'avoir un message d'alerte. Peux-tu m'aider?

IP archivée


bebarth  25 juillet 2019 : 11:33

bonjour,
Voici déjà une première réponse.
C'est un script de touche personnalisé que j'ai adapté, qui insert directement les tirets pour avoir un format AAAA-MM-JJ :
// Date au format AAA-MM-JJ avec tirets automatiques
if(!event.willCommit) {
   if(/^\d{4}$/.test(event.value) && event.selStart == 4) event.change = "-" + event.change;
   else if(/^\d{4}-\d{2}$/.test(event.value) && event.selStart == 7) event.change = "-" + event.change;
   var aRslt = event.value.split("");
   aRslt.splice(event.selStart, event.selEnd - event.selStart, event.change);
   var strTest = aRslt.join("");
   var rpat = /^[12](\d{0,3}(-\d{0,2}(-\d{0,2})?)?)?$/;
   event.rc = rpat.test(strTest);
} else {
   var rpat = /^(\d{4}-\d{2}-\d{2})?$/;
   event.rc = (event.value == "") || rpat.test(event.value);
}
Ce script devra être amélioré pour vérifier les mois, jours, et années bissextiles...
Mais à part être docteur es expressions régulières, c'est toujours un peu plus compliqué qu'on ne pense et je n'aurai pas le temps de regarder avant le début de semaine prochaine.
A moins que j'ai un éclair...
@+
 :bonjour:

IP archivée


Merlin  25 juillet 2019 : 14:15

Oui, sauf que le message indique la date en anglais yyyy-mm-dd au lieu de AAAA-MM-JJ.. d'où la nécessité d'avoir un message d'alerte. Peux-tu m'aider?
La première fois que j'ai signalé ce bug (humain) absurde et demandé sa correction c'était il y a plus de onze ans, quand Adobe préparait Acrobat 8.
 :mur:

IP archivée


bebarth  06 août 2019 : 09:17

bonjour,
A moins que j'ai un éclair...
J'ai cru voir l'éclair, mais je me suis vite aperçu que ce n'était qu'une lueur...
Je pensais avoir trouvé rapidement, mais après quelques testes je me suis aperçu que si je revenais sur ce que j'avais tapé, ça ne fonctionnait plus correctement.
J'ai dû tout reprendre depuis le début. Si je peux donner un conseil, n'hésitez pas à utiliser la console et à afficher les différentes variables (au bon endroit)... Des fois on a des surprises, notamment avec "event".
Ci-joint le fichier auquel j'ai abouti. Après pas mal d'essais je n'ai pas trouvé d'erreur !!!
Les tirets sont insérés automatiquement et le dernier jour du mois est vérifié lors de la saisie : Impossible d'indiquer un "31 avril" ou un "29 février" d'une année qui n'est pas bissextile...
@+
 :bonjour:

IP archivée


Merlin  11 août 2019 : 13:28

 :bravo:

IP archivée


Jessy  13 août 2019 : 22:40

C'est exactement ça!!!


Merci beaucoup Bebarth!!! Tu es un génie!! :soleil: :soleil: :soleil: :soleil:

IP archivée


bebarth  14 août 2019 : 09:56

bonjour,
Ce script n'aurait pas pu être écrit pour un format de date à la française...
J'ai toujours considéré le format de date anglais plus pratique pour le classement, le calcul, ...
A mon avis, avec le rock, le format de date est l'une des très bonnes inventions anglaises !  :geek:
@+
 :bonjour:

IP archivée


Merlin  14 août 2019 : 12:45

yyyy-mm-dd n'est pas le format anglais, c'est le format ISO international.
Le format anglais c'est mm-dd-yyyy.
 :Smiley15:

IP archivée


bebarth  14 août 2019 : 14:12

Il ne leur reste plus que le rock alors !
@+
 :bonjour:

IP archivée


Merlin  22 août 2019 : 08:31

Et le whisky !
 :Smiley03:

IP archivée