Date et liste déroulante : bug étrange ! [Résolu]

Messages postés
2
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
2 février 2007
- - Dernière réponse : cs_roro06
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
- 2 févr. 2007 à 11:10
Bonjour ,

Je ne sais pas si j'ai choisie la bonne section pour poster ça, mais je pense que vous me le direz le cas échéant ; )

je suis sur un formulaire avec 2 dates : une date de départ et une date de retour. Mes dates sont formés sous forme de liste : une pour les jours, une pour les mois et une pour les années.

Je souhaite faire en sorte que la date de départ soit toujours inférieure à la date de retour.

J'appel donc ma fonction sur "onchange" de la liste déroulante des jours pour la date de départ (pour commencer!)

Ma fonction JAVASCRIPT change donc le numéro du jour dans la liste jour de la date de retour.

[SCRIPT]
var origine = f.dateeedep.value; // Champs caché qui contient le date complète de depart sous la forme "dd/mm/yy"
var depart  = f.dateeedep.value.split('/');

var temoin=0;
       
if( parseInt(depart[2]) >= parseInt(retour[2]) ){temoin = 1;} // Test pour les années
else
{
    if(parseInt(depart[1]) >= parseInt(retour[1])){temoin = 1;} // Test pour les mois
        else
        {
            if(parseInt(depart[0]) >= parseInt(retour[0])){temoin = 1;}// Test pour les jours
        }
}
if(temoin==1)
{
    newdateretour = add_days(origine); // Fonction qui ajoute un jour
    f.dateeeret.value = newdateretour; // change la date retour dans un champs caché

    fill_field_retour(); // Met a jour les lites date retour en fonction du champs caché
    update_lists('R'); // Met a jour les lites date retour en fonction du champs caché
}
       
/SCRIPT

Ce script fonctionne pour tous les jours du mois, sauf le jour 8 et 9, pour une raison qui m'échappe complètement.

Quand le jour choisi dans la liste est 8 ou 9, si j'affiche le champs dateeeret il me met 01/mm/yy, il revient au début du mois en fait.

Je ne comprend vraiment pas pourquoi ces jours la ne passent pas.  
Si vous avez une piste,

Merci d'avance !!
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1253
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
3
Merci
Bonjour,

petite précision par rapport à ce que dit Roro, ceci ne t'empèche pas de présenter tes données avec le 0 mais par contre tu ne dois pas le mettre au niveau du value ex :
<option value='1'>01</option>
<option value='2'>02</option>
...
<option value='8'>08</option>
<option value='9'>09</option>
<option value='10'>10</option>

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 217 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nickadele
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
0
Merci
Bonjour




ça me rappele qchose, ça ! Il faut savoir que javascript considère tout nombre commençant par 0 comme étant en octal (base 8), donc pour tous les nombres de 0 a 7, pas de problèmes, mais 8 et 9 n'existent pas en base 8. Il faut utiliser: nombre=parseInt(nombreOctal, 10); ... Ou alors ne pas mettre de zero devant tes jours (et mois)

Cordialement
Roro webDev
Commenter la réponse de cs_roro06
Messages postés
2
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
2 février 2007
0
Merci
Merci bien, on m'a donné exactement la même réponse sur un forum (Roro = robloch ? )

Ca roule maintenant ; )

merci a vous 2 !
Commenter la réponse de ChEp51
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
0
Merci
Bonjour




Non !

Cordialement
Roro webDev
Commenter la réponse de cs_roro06