IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

format date validator javascript?


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut format date validator javascript?
    Bonjour,

    j'ai une textbox dans laquelle je dois rentrer une date sous la forme jj/mm/aaaa.

    j'aimerai faire un validator dessus afin de vérifier le format de la date.
    comment puis je faire? j'aimerai utiliser javascript mais comment?

    Note : j'ai déjà un un RangeValidator pour vérifier que la date est bien au moins celle du jour, et le message de celui-ci s'affiche quand le format n'est pas bon, mais pour dire que "la date doit être postérieure à aujourd'hui".

    Merci de m'aider.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Regarde l'objet DateTime, il doit posseder une méthode qui fait cela :
    http://msdn2.microsoft.com/en-us/lib...me(VS.80).aspx

    j'aimerai utiliser javascript mais comment?
    Pourquoi ???
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Pourquoi ???
    Pour directement valider le format de la date du côté du client...

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Pourquoi en Javascript et pas en asp ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre du Club Avatar de medtun.net
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 60
    Points
    60
    Par défaut
    Oui il vaut mieux vérifier la date du coté client..
    Tu peux utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     function isDate(d) {
     // Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
     // Par Romuald
     
     if (d == "") // si la variable est vide on retourne vrai
     return true;
     
     e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
     
     if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
     return false; // Si pas bon, retourne faux
     
     // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
     j = parseInt(d.split("/")[0], 10); // jour
     m = parseInt(d.split("/")[1], 10); // mois
     a = parseInt(d.split("/")[2], 10); // année
     
     // Si l'année n'est composée que de 2 chiffres on complète automatiquement
     if (a < 1000) {
     if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
     else a+=1900;
     }
     
     // Définition du dernier jour de février
     // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
     if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
     else fev = 28;
     
     // Nombre de jours pour chaque mois
     nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
     
     // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
     return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
     }

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    euh c'est quoi comme code ; du javascript je suppose?

    pardonne moi ma question "à la con", mais je débute en javascript et je commence tout juste à comprendre le C# alors...!

  7. #7
    Membre du Club Avatar de medtun.net
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par cyrano_de_bergerac Voir le message
    j'aimerai utiliser javascript mais comment?
    je t'ai donné une fonction javascript qui permet de vérifier des dates...
    bref
    1) mets la fonction que je t'ai donné dans un fichier javascript ("jsFonctions.js" par exemple)
    2) entre les balises <head> de ta page aspx tu mets la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="jsFonctions.js" language="javascript" type="text/javascript"></script>
    3) dans <body> tu mets le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language="javascript" type="text/javascript">
    function verifier()
    {
        var bl= true;
        if(!isDate(document.getElementById('<%= txtDate.ClientID %>').value))
        {
            bl=false;
            alert('date non valide');
        }
        return bl;
    }        
    </script>
    bien entendu txtDate est le controle qui porte la date à vérifier
    4) Tu fais appel à la fonction verifier() lors de l'évènement OnClientClick de ton controle validateur (par exemple un bouton ou un linkButton..)
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button runat="server" ID="btn" Text="ok" OnClientClick="javascript:return verifier();" />

  8. #8
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    et si tu utilisais le controle comareValidator en spécifiant l'opérateur sur DataTypeCheck et Type à Date
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    ok merci pour vos réponses, ça marche!

    sinon j'aimerai que l'année soit aaaa et jamais aa.

    dans ce cas, j'écris mon regex comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4})$");
    ?

    merci

  10. #10
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu as testé ? C'est le moyen le plus rapide de savoir, non ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Tu as testé ? C'est le moyen le plus rapide de savoir, non ?
    ouaip ça marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/08/2009, 15h00
  2. Javascript autocomplétion "format date" "onchange"
    Par Nuloprog dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 13/05/2009, 12h34
  3. Problème format date et règle de validation
    Par piere42 dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/02/2009, 13h17
  4. format date validator javascript?
    Par cyrano_de_bergerac dans le forum C#
    Réponses: 1
    Dernier message: 21/12/2007, 14h06
  5. validation fomat date en javascript
    Par badoress dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/10/2007, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo