Probleme avec formulaire

Résolu
bech88 Messages postés 3 Date d'inscription vendredi 27 mai 2011 Statut Membre Dernière intervention 21 juin 2011 - 19 juin 2011 à 15:55
bech88 Messages postés 3 Date d'inscription vendredi 27 mai 2011 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 15:18
voila le code aider moi our la formulaires

<script language="javascript">
// fonction développée en Aout 2005 par Marie-Agnés Ménard - Conseil Général de Maine et Loire
// cette fonction permet de comparer deux dates, une condition est rajoutée car la date de début de réservation ne peut
//pas être infèrieur à la date du jour si choix date du jour
//dans le formulaire à controler nommer un ou deux champs input text date1 et date2 dans l'appel de fonction
//onblur="Javascript:datecomp(this,'1') ou onblur="Javascript:datecomp(this,document.formul.date1.value);"
//'1' indique la date du jour, dans le deuxieme exemple on envoi la date1 ou peut entrer en deuxième paramètre
//une date 'JJ/MM/AAAA"
//une fonction controle validité de date est rajoutée (format + pertinence)
//une fontion de controle des chiffres

function DonnerFocus(nom) {
document.forms[0].elements[nom].focus();
}
function datecomp(datesaisie,datecompar){
var datedebut=datesaisie.value;
var datefin=datecompar;
//vérification du format - si la date est saisie je commence le travail, ce si se termine à la fin
if (datedebut!="") {
if (datefin=='1'){
//definition des variables champs pour reprendre le focus au bon endroit
var focus="date1";
}
else {
var focus="date2";
}
//véfification du format de date et +
if (!verifdate(datedebut)) {
alert("Attention soit la date n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus(focus);return false;
}
//création d'un tableau ou je range la date début dans trois cases, si il y a des zero je les supprimme
deb = new Array(3);
if (datedebut.substring(0,1)=="0"){
deb[1]=parseInt(datedebut.substring(1,2));
}
else {
deb[1]=parseInt(datedebut.substring(0,2));
}
if (datedebut.substring(3,4)=="0"){
deb[2]=parseInt(datedebut.substring(4,5));
}
else {
deb[2]=parseInt(datedebut.substring(3,5));
}
deb[3]=parseInt(datedebut.substring(6,10));

//si la datefin contient 1 on vient du formulaire dateresadebut donc on compare avec la date du jour
//dans ce cas on récupère un format de date javascript, on le transforme et on le range dans un tableau
//je ne transforme pas la variable datfin que je réutilise plus loin
if (datefin=='1') {
datef=new Date();
fin = new Array(3);
fin[1]=datef.getDate();
fin[2]=datef.getMonth()+1;
fin[3]=datef.getYear();
var message="la date de réservation ne peut être infèrieur à la date du jour";
}
//dans l'autre cas, on arrive du formulaire par dateresafin et datecompar=dateresadebut
//on récupère la dateresadebut et on la range aussi dans un tableau mais comme la datedébut
else {
fin = new Array(3);
if (datefin.substring(0,1)=="0"){
fin[1]=parseInt(datefin.substring(1,2));
}
else {
fin[1]=parseInt(datefin.substring(0,2));
}
if (datefin.substring(3,4)=="0"){
fin[2]=parseInt(datefin.substring(4,5));
}
else {
fin[2]=parseInt(datefin.substring(3,5));
}
fin[3]=parseInt(datefin.substring(6,10));
var message="la date de fin de réservation ne peut être infèrieure à la date de début";
}

//comparaison des dates

if (deb[3]<fin[3]) {
alert(message);DonnerFocus(rfocus);return false;
}
else {
if ((deb[3]== fin[3]) && (deb[2]<fin[2])){
alert(message);DonnerFocus(rfocus);return false;
}
else {
if ((deb[3]== fin[3]) && (deb[2]==fin[2]) && (deb[1]<fin[1])){
alert(message);DonnerFocus(rfocus);return false;
}
}
}
//si la date de réservation dépasse un an on demande une confirmation
if (datefin!='1'){
if ((deb[3]-fin[3])>1){
if (confirm("attention, vous avez réservé pour plus d'un an, confirmer ?")) {
return true;
}
else {
return false;
}
}
}
return true;
}
}

// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
// Le séparateur est défini dans la variable separateur

function verifdate(d) {
var dateaverifier=d
// rangement de la date dans des variables
if (dateaverifier.substring(0,1)=="0"){
var j=parseInt(dateaverifier.substring(1,2));

}
else {
var j=parseInt(dateaverifier.substring(0,2));
}
if (dateaverifier.substring(3,4)=="0"){
var m=parseInt(dateaverifier.substring(4,5));
}
else {
var m=parseInt(dateaverifier.substring(3,5));
}
var a=parseInt(dateaverifier.substring(6,10));
//si la longueur est différent de 10 , problème
if (dateaverifier.length != 10) {
return false;
}
//les caratères / ne sont pas aux endroits attendus
else {
if((dateaverifier.charAt(2) != '/') && (dateaverifier.charAt(5) != '/')) {
return false;
}
}
//l'année n'est pa un chiffre
if (isNaN(a)) {
return false;
}
//le mois n'est pas un chiffre ou n'est pas compris entre 0 et12
if ((isNaN(m))||(m<1)||(m>12)) {
return false;
}
//test si il s'agit d'une année bissextile pour accepter le 29/02
if (((a % 4)==0 && (a % 100)!=0) || (a % 400)==0){
if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>29)))) {
return false;
}
}
else {
if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>28)))){
return false;
}
}
return true;
}



</script>

2 réponses

Utilisateur anonyme
21 juin 2011 à 00:10
En gros tu veux que quelqu'un fasse le travail à ta place.
Généralement, on montre que l'on a cherché et on aura alors de l'aide. Là, les gens n'ont pas forcément envie de faire le boulot pour toi, d'autant plus que c'est du copier/coller de code récupéré sans même avoir utilisé les balises pour afficher le code clairement.

Préciser clairement ce que tu veux au lieu de mettre des bouts d'infos mélangé au code...


--
Pylouq
3
bech88 Messages postés 3 Date d'inscription vendredi 27 mai 2011 Statut Membre Dernière intervention 21 juin 2011
21 juin 2011 à 15:18
merci pour la réponse
généralement je veux cette code qui obtenir deux date(entrée et sortie)afin de préciser que la date de fin supérieure a la date de début et que ces deux dernier doivent être supérieure a la date de jour et les deux dates sous la forme (yyyy-mm-jj). (javascript+formulaires).
0
Rejoignez-nous