/* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction de blocage de la saisie # si elle n'est pas conforme # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ function bloque(formulaire,champ) { // Creation d'un raccourci pour manipuler le champ //var controle = eval('document.' + formulaire + '.' + champ); var controle = MM_findObj(champ); // On se place sur le champ incrimine controle.focus(); // On selectionne le contenu pour faciliter la reprise de la saisie controle.select(); }/*### FIN */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction de controle des champs vides # (sauf bouton radio et checkbox multiple) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ // Debut du message qui sera affiche en cas d'un ou plusieurs champ(s) vide(s) var mess = "Les champs suivants sont necessaires au traitement de votre demande :\n"; // Copie pour reinitialisation var mess_init = "Les champs suivants sont necessaires au traitement de votre demande :\n"; // Variable marquant l'erreur (0 : tout va bien, 1 : blocage demande) var necessaire = 0; function vide(formulaire,champ,alerte) { // Creation d'un raccourci pour manipuler le champ a tester //var controle = eval('top.' + formulaire + '.' + champ); var controle = MM_findObj(champ); // Si c'est un champ 'text' if ( controle.type == 'text' ) { // Et que la valeur du champ comporte moins de 1 caractere (vide) if ( controle.value.length < 1 ) { // On ajoute l'intitule du champ dans le message d'erreur mess += alerte; mess += "\n"; // On marque qu'il ne faut pas valider le formulaire necessaire = 1; } } // Si c'est un champ de type mot de passe if ( controle.type == 'password' ) { if ( controle.value.length < 1 ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Si c'est un champ de type texte multilignes if ( controle.type == 'textarea' ) { if ( controle.value.length < 1 ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Si c'est une liste if ( controle.type == 'select-one' ) { // Si c'est le premier element qui est selectionne (element vide a indiquer dans le HTML) //if ( controle.options[0].selected ) if ( controle.value == '' ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Si c'est une case a cocher if ( controle.type == 'checkbox' ) { // Quand elle est cochee, l'etat est 'true', ici on cherche l'inverse (false) if (!controle.status) { mess += alerte; mess += "\n"; necessaire = 1; } } }/*### FIN [ vide() ] */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction pour le test de boutons radio # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ function vide_radio(formulaire,champ,alerte) { // Creation d'un raccourci pour manipuler le champ a tester //var controle = eval('document.' + formulaire + '.' + champ); var controle = MM_findObj(champ); // On declare par defaut que les champs ne sont pas coches, var ok = 0; for ( i = 1; i <= controle.length; i++ ) { // Si on trouve un bouton coche, on le marque if (controle[i-1].checked) { ok = 1; } } // Si on n'a pas marque un champ comme 'coche' (ok) if ( !ok ) { mess += alerte; mess += "\n"; necessaire = 1; } }/*### FIN [ vide_radio() ] */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Verif checkbox multiple # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ function vide_checkboxList(formulaire,champ,alerte,min,max) { // Creation d'un raccourci pour manipuler le champ //var controle = eval('document.' + formulaire + '.' + champ); var controle = MM_findObj(champ); var nbCheck = 0; for (i=1; i<=controle.length; i++) { if (controle[i-1].checked) { controle[i-1].name = champ+'[]'; nbCheck++; } } if(min) { if(nbCheck < min) { mess += alerte; mess += " (minimum "+min +" cases)\n"; necessaire = 1; } } if(max) { if(nbCheck > max) { mess += alerte; mess += " (maximum "+max +" cases)\n"; necessaire = 1; } } }/*### FIN [ vide_checkboxList() ] */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction de validation du formulaire # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ function resultat(formulaire) { var retour = necessaire; // Si on a marque qu'au moins un champ etait vide if ( necessaire == 1 ) { // Affichage du message d'erreur avec tous les champs en erreur alert(mess); } // Si aucun champ n'est vide if ( necessaire == 0 ) { //var formu = eval('document.' + formulaire); var formu = MM_findObj(formulaire); // Validation du formulaire //formu.submit(); } // Quoi qu'il arrive, on re-initialise le message d'erreur pour permettre un autre passage des tests mess = mess_init; necessaire = 0; return !retour; }/*### FIN [ resultat() ] */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction de controle de validite de la saisie # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ // Creation d'une variable pour marquer s'il y a incoherence de saisie ou pas var probleme = 0; function validite(formulaire,champ,format,mini,maxi) { // Initialisation de la variable probleme = 0; nomFormat = new Array(); nomFormat['A']= "non Alphabètique"; nomFormat['A_STRICT']= "non Alphabètique"; nomFormat['AN']= "non Alphanumérique"; nomFormat['AN_STRICT']= "non Alphanumérique"; nomFormat['AN_ALL'] = "non Alphanumérique ni spécial autorisé (espace ? ; . _ - ) ("; nomFormat['ALL'] = "interdit (< et >)"; nomFormat['ALL_STRICT'] = "interdit"; nomFormat['N']= "non Numérique"; nomFormat['MAIL']= "non conforme pour un mail"; // Les differents tests possibles : // On affecte a la variable 'RE' le test d'expression reguliere souhaite // A : alphabetique if ( format == "A" ) { RE = /^([A-Za-zÀ-ÿ]+[ ]*[-]*[A-Za-zÀ-ÿ\s\']*)+$/;} if ( format == "A_STRICT" ) { RE = /^[A-Za-z]+$/;} // AN : alphanumerique if ( format == "AN" ) { RE = /^[A-Za-z0-9\-]+$/;} if ( format == "AN_STRICT" ) { RE = /^[A-Za-z0-9]+$/;} if ( format == "AN_ALL" ) { RE = /^[A-Za-zÀ-ÿ0-9\-_\.;\'\?\!\(\)"\s]+$/;} // ALL : tous les caractères sauf < > if ( format == "ALL" ) { RE = /^[^<>]+$/;} if ( format == "ALL_STRICT" ) { RE = /^.+$/;} // AN_ALL : tous les caractères sauf < > if ( format == "AN_ALL" ) { RE = /^[A-Za-zÀ-ÿ0-9\-_\.;\'\?\!\(\)"\s]+$/;} // N : numerique if ( format == "N" ) { RE = /^[0-9]+$/;} // EMAIL : email if ( format == "MAIL" ) { RE = /^[A-Za-z0-9\._\-]+[@][A-Za-z0-9\.\-]+[\.][A-Za-z][A-Za-z][A-Za-z]?$/; } // Creation d'un raccourci pour manipuler le champ a tester //var controle = eval('document.' + formulaire + '.' + champ); var controle = MM_findObj(champ); // On ne fera les tests que si le champ est rempli d'au moins un caractere (pas vide) if (controle.value.length > 0) { // Si on ne trouve pas dans le champ l'expression reguliere recherchee if (!RE.test(controle.value) ) { // Envoi d'une alerte alert('La chaîne contient des caractères '+nomFormat[format]+'.'); // On marque que la saisie n'est pas coherente probleme = 1; } // Tests de longueur du champ (nombre de caracteres saisis) // Si il a ete specifie '0', le test n'est pas effectue if ( mini != 0 ) { // Si la longueur de la saisie est inferieure au minimum demande if ( controle.value.length < mini ) { // Envoi d'une alerte alert('Vous devez saisir au moins ' + mini + ' caracteres.'); probleme = 1; } } // Si la longueur de la saisie est superieure au maximum demande if ( maxi != 0 ) { if ( controle.value.length > maxi ) { alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.'); probleme = 1; } } // Si on a marque qu'il y avait un probleme if ( probleme == 1 ) { // On active le blocage du champ bloque(formulaire,champ); } } }/*### FIN [ validite() ] */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction de verification d'une plage de nombres # (entre X et Y) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ function check_num(formulaire,champ,min,max) { // Creation d'un raccourci pour manipuler le champ a tester //var controle = eval('document.' + formulaire + '.' + champ); var controle = MM_findObj(champ); // Si la valeur de la saisie est inferieure au plancher demande if (min && controle.value < min && controle.value ) { // Envoi d'une alerte alert('Votre saisie ne doit pas etre inferieure a ' + min + '.'); // On active le blocage du champ bloque(formulaire,champ); } // Si la valeur de la saisie est superieure au plafond demande if (max && controle.value > max ) { alert('Votre saisie ne doit pas etre superieure a ' + max + '.'); bloque(formulaire,champ); } }/*### FIN [ validite() ] */ /* # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Fonction pour verifier la cohérence de 2 saisies de mot de passe # Cette fonction se declenche à partir du second champ uniquement # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #*/ function check_pw(formulaire,champ1,champ2) { // Creation de deux raccourcis pour manipuler les champ a comparer //var prems = eval('document.' + formulaire + '.' + champ1); //var deuze = eval('document.' + formulaire + '.' + champ2); var prems = MM_findObj(champ1); var deuze = MM_findObj(champ2); // Si le premier champ n'est pas rempli et que le 2ème oui if (!prems.value && deuze.value) { // Envoi d'une alerte alert('Vous n\'avez pas saisi votre mot de passe'); // On active le blocage du champ bloque(formulaire,champ1); } // Si le premier champ est rempli else { // Si la saisie des deux champ est differente if ( prems.value != deuze.value ) { // Envoi d'une alerte alert('La confirmation de votre mot de passe n\'est pas exacte.'); // Reinitialisation des deux champs deuze.value = ""; prems.value = ""; // On active le blocage du champ bloque(formulaire,champ1); } } }/*### FIN [ validite() ] */