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

JavaScript Discussion :

problème sur substring (fonction inconnue)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 90
    Par défaut problème sur substring (fonction inconnue)
    bonjour,

    je voudrais savoir quel problème il peut y avoir dans la fonction suivante. La console javascript de Firefox me donne une erreur en précisant que la fonction substring n'est pas une fonction. A chaque ligne ou je la demande il y a donc erreur. Pourquoi ?
    De plus, pourquoi lorsque je récupère la valeur du champ texte, je ne peux pas travailler sur la variable contenant ce résultat ?

    Merci

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <html>
    <head>
    <script>
    function test(){
    	document.getElementById('test').value="test";
    }
    function verifdate()
    {	
    	datesysteme=new Date(); //récupère la date complète du système ex: "Fri Dec 17 09:23:30 1998"
    	joursysteme=datesysteme.getDate();
    	moissysteme=datesysteme.getMonth(); //entre 0 et 11
    	moissysteme=moissysteme+1;
    	ansysteme=datesysteme.substring(11,4);
    	document.write(datesysteme+" "+ansysteme);
     
    	cdate=document.getElementById('txtdaller').value; //Récupère le contenu du champ texte.
    	lgdate=cdate.length;
    	if (lgdate!=10) //Cas ou le jour ou mois ne sont pas donnés sous 2 chiffres
    	{ alert ("la date donnée ne corrrespond pas au format souhaité : 05/02/2005 par exemple."); }
    	else 
    	{
    		jour=cdate.substring(0,2); //Récupère le jour du match
    		mois=cdate.substr(4,2); //Récupère le mois du match 
    		annee=cdate.substr(7,10); //Récupere l'année du match 
    		sep1=cdate.substr(3,1); //récupère le type de séparateur qui doit être un /
    		sep2=cdate.substr(6,1); //récupère le type de séparateur qui doit être un /
    		document.write(jour+" "+mois+" "+annee+" "+sep1+" "+sep2); //Vérification des variables de sorties
     
    		if (((sep1!="/") || (sep2!="/")) && (sep1!=sep2))
    		{ alert("La date ne correspond pas au format demandé ! (ex: 01/01/2006)"); }
    		if ((jour<0) || (jour>31))
    		{ alert("Le jour doit être un nombre ENTIER compris entre 0 et 31, excepté pour le mlois de FEVRIER (28 ou 29 jours)."); }
    		if ((mois<0) || (mois>12))
    		{ alert("Le mois est un nombre ENTIER compris entre 1 et 12."); }
    		if ((annee<ansysteme) || (annee>(ansysteme+1)))
    		{ alert=("L'année du match est celle de l'année en cours OU de l'année suivante uniquement (saison 2005/2006)."); }
    		if (mois<moissysteme)
    		{ alert("Le mois du match doit être supérieur à la date d'aujourd'hui"); }
    		if ((jour<jousysteme) && (mois>=moissysteme))
    		{ alert("Ce jour de match n'est pas valide car déjà passé !"); }
    	}
    }
     
    </script>
    </head>
    <body>
     
    <input name="txtdaller" type="text" id="txtdaller" value="xx/xx/20xx" maxlength="10" onBlur="verifdate();" ><br>
    <input type='text' id='test' name='test' value="" disabled='true'><br>
    <input type='button' id='bouton' name='bouton' value="test" onClick="test();">
     
     
    </body>
    </html>
    je ne trouve pas les erreurs.

    Merci pour le coup de main

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 93
    Par défaut
    La méthode substring ne s'applique qu'à des objets String. Mais là où tu as une erreur, c'est quand tu tentes d'utiliser cette méthode sur un objet Date ("substring n'est pas une fonction" pour l'objet Date).

    Il faudrait que, lorsque tu veux faire un substring de ta variable datesysteme, tu convertisses d'abord cette variable en String :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ansysteme=String(datesysteme).substring(11,4) ;
    Autre chose : les deux paramètres de substring doivent être des positions dans la chaîne de caractère, et non une position, puis un nombre de caractères. Il faudra que tu corriges cela aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // on omet le 2e param. qui correspond par défaut à la position du dernier caractère de la chaîne
    ansysteme=String(datesysteme).substring(11) ;

  3. #3
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    substring c'est pour un objet string et non pour une date

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 90
    Par défaut
    ok les modifs ont été faites. Merc pour l'info.

    Cependant, j'ai toujours une erreur lorsque je veux récupérer le contenu de mon champ texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var cdate=document.getElementById('txtdaller').value;
    il m'est précisé que cet élément n'a pas de propriété je ne peux odnc pas récupérer le contenu de mon champ texte.

    Une idée ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 93
    Par défaut
    Est-ce que tu as essayé de récupérer cette valeur en insérant d'abord tes INPUTS dans un FORM comme il se doit ?

  6. #6
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    Est-ce qu'il peut être possible que vue que le name et le id de ton objet sont les meme, ca porte a confusion?
    Si tu change le id est ce que ca passe?

    Je me demandais aussi, pourquoi est-ce que tu utilise des simple guillemets ' ' et parfois des doubles " " pour les popriétés de tes objets input...?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 93
    Par défaut
    Citation Envoyé par ozzmax
    Est-ce qu'il peut être possible que vue que le name et le id de ton objet sont les meme, ca porte a confusion?
    Si tu change le id est ce que ca passe?

    Je me demandais aussi, pourquoi est-ce que tu utilise des simple guillemets ' ' et parfois des doubles " " pour les popriétés de tes objets input...?
    D'expérience, je sais que ça ne changera rien.

    Par contre, des INPUT qui sont pas balisés par un FORM, c'est du HTML mal formé. Le risque est grand que l'accès à ces objets soit rendu difficile ou impossible puisque le DOM n'est pas respecté.

Discussions similaires

  1. [PostgreSQL] [PostGreSQL] problème sur une fonction avec connexion
    Par roblescriso dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/06/2008, 18h03
  2. problème sur la fonction CreateProcess(..)
    Par mog83 dans le forum Visual C++
    Réponses: 5
    Dernier message: 20/05/2008, 13h46
  3. [RegEx] problème sur la fonction preg_replace pour formatage
    Par medkyl dans le forum Langage
    Réponses: 4
    Dernier message: 06/02/2008, 17h37
  4. Réponses: 3
    Dernier message: 23/08/2007, 00h39
  5. [MySQL] exécuter un script php en commande linux : problème sur les fonctions mysql
    Par dr_octopus74 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2007, 16h34

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