besoin d'aide formulaire js switch - HTML/CSS - Programmation
Marsh Posté le 27-05-2005 à 14:44:28
Code :
|
Marsh Posté le 27-05-2005 à 15:23:03
FlorentG a écrit : Un peut trop lourdingue, rien ne vaut une RegExp |
Ok, faut que je réécrive avec des regexp, mais avec ma fonction, la saisie de 1 1 1 donne 01/01/2001 au lieu de râler
Marsh Posté le 27-05-2005 à 15:23:26
Mara's dad a écrit : Ok, faut que je réécrive avec des regexp, mais avec ma fonction, la saisie de 1 1 1 donne 01/01/2001 au lieu de râler |
Ah ouais effectivement
Marsh Posté le 27-05-2005 à 14:35:33
voilà jai créée un formulaire où je voudrai vérifier la validité de la date, afin quell soit sous la forma jj/mm/aaaa.
j'ai le code suivant:
function Verifdate(jour)
{
var trouve = false;
// je vérifie que le premier element de mon input est bien soit 0, soit 1, soit 2, soit3
switch(document.forms[1].elements[jour].value.substring(0,1)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
case 3:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
// je vérifie que le 2eme element de mon input est bien soit 0, soit 1, soit 2, soit3...
switch(document.forms[1].elements[jour].value.substring(1,2)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
case 3:
trouve = true;
break;
case 4:
trouve = true;
break;
case 5:
trouve = true;
break;
case 6:
trouve = true;
break;
case 7:
trouve = true;
break;
case 8:
trouve = true;
break;
case 9:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
switch(document.forms[1].elements[jour].value.substring(3,4)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
switch(document.forms[1].elements[jour].value.substring(4,5)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
switch(document.forms[1].elements[jour].value.substring(6,7)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
case 3:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
switch(document.forms[1].elements[jour].value.substring(7,8)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
case 3:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
switch(document.forms[1].elements[jour].value.substring(8,9)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
case 3:
trouve = true;
break;
case 4:
trouve = true;
break;
case 5:
trouve = true;
break;
case 6:
trouve = true;
break;
case 7:
trouve = true;
break;
case 8:
trouve = true;
break;
case 9:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
}
switch(document.forms[1].elements[jour].value.substring(9,10)) {
case 0:
trouve = true;
break;
case 1:
trouve = true;
break;
case 2:
trouve = true;
break;
case 3:
trouve = true;
break;
case 4:
trouve = true;
break;
case 5:
trouve = true;
break;
case 6:
trouve = true;
break;
case 7:
trouve = true;
break;
case 8:
trouve = true;
break;
case 9:
trouve = true;
break;
default:
alert("Rentrez la date sous la forme: jj/mm/aaaa" );
trouve = false;
break;
} }
mon input est présenté de la maniere suivante :
<input type="text" name="jour" onChange="Verifdate('jour');">
mais qd jexecute le code dans la navigateur, jobtiens 8 alertes, c'est-a-dire que les cas ne sont mm pas pris en compte et il va directement au default.
est-ce que qqun y voit plus clair que moi
merci