Date et liste déroulante : bug étrange !

Résolu
ChEp51 Messages postés 2 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 2 février 2007 - 1 févr. 2007 à 15:50
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 !!

4 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
1 févr. 2007 à 21:43
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
3
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
1 févr. 2007 à 17:04
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
0
ChEp51 Messages postés 2 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 2 février 2007
2 févr. 2007 à 11:03
Merci bien, on m'a donné exactement la même réponse sur un forum (Roro = robloch ? )

Ca roule maintenant ; )

merci a vous 2 !
0
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




Non !

Cordialement
Roro webDev
0
Rejoignez-nous