/*Documentation Controle Javascript : =================================== Type de champs INPUT (sauf radio) & TEXTEAREA ==> fw_obligatoire (oui | non) Cette option permet de déterminer le caractère obligatoire du champs ==> fw_type (int | float | email | cp | date | alphanum | url) Cette option permet de déterminer quel controle de formulaire on doit appliquer au champs (entier, chaine de caractère...) ==> fw_lib Cette option permet de déterminer le libellé qui sera affiché par la fonction de contrôle de formulaire ==> fw_mode Dans le cas du type date, on choisit des modes via cet attribut Les différents modes sont : (jj/mm/aaaa | jj-mm-aaaa | jj mm aaaa | aaaa-mm-jj) ==> fw_lien (id du champs lié) Permet de lier 2 champs ensemble (attention, il faut mettre comme valeur l'ID du champs a lier et non pas le name) ==> fw_type_lien (egale) Permet de définir le type de lien qui existe entre les 2 champs ==> fw_size Cette option permet de définir quelle doit être la taille exacte du contenu ==> fw_min_size Cette option permet de définir quelle doit être la taille minimum du contenu ==> fw_max_size Cette option permet de définir quelle doit être la taille maximum du contenu Type de champs INPUT Radio (les controles doivent etre positionnes sur le premier input radio) ==> fw_obligatoire (oui | non) Cette option permet de déterminer le caractère obligatoire du champs ==> fw_lib Cette option permet de déterminer le libellé qui sera affiché par la fonction de contrôle de formulaire Type de champs INPUT Submit ==> fw_submit_mode (simple | disable) Cette option permet de controler que le submit ne soit validé qu'une fois. => simple : le formulaire ne peut être validé qu'une seule fois => disable : comme simple, mais le bouton submit est en plus désactivé (RECOMMANDE) ==> fw_submit_function (maFonctionPeronnalisee()) => maFonctionPeronnalisee() : ici vous pouvez mettre le nom d'une fonction personnalisée qui, par exemple, ouvrira une popin d'attente le temps de la validation du formulaire Type de champs SELECT ==> fw_obligatoire (oui | non) Cette option permet de déterminer le caractère obligatoire du champs, en se basant sur la propriété SELECTED ==> fw_lib Cette option permet de déterminer le libellé qui sera affiché par la fonction de contrôle de formulaire Exemple d'utilisation : Entete du formulaire :
les champs doivent avoir la meme valeur if(formulaire_elements[i].getAttribute('fw_type_lien')=='egale') { if (formulaire_elements[i].value!=formulaire_elements[id_champ_lie].value) { tab_lien.push(formulaire_elements[i].getAttribute('fw_lib') + " et "+ formulaire_elements[id_champ_lie].getAttribute('fw_lib') + " doivent être égaux"); } } } if (formulaire_elements[i].value != "") { // ************* // *** Vérification de la taille du champ // ************* // Si une taille exacte est fournie if ( formulaire_elements[i].getAttribute('fw_size') != null ) { // Récupération de la taille exacte que doit avoir le contenu du champs var taille_exacte = formulaire_elements[i].getAttribute('fw_size'); // Si le contenu du champ n'est pas à la taille exacte imposée if ( formulaire_elements[i].value.length != taille_exacte ) { tab_size.push( formulaire_elements[i].getAttribute('fw_lib') +" doit contenir exactement "+ taille_exacte +" caractères"); } } // Si une taille minimale est fournie if ( formulaire_elements[i].getAttribute('fw_min_size') != null ) { // Récupération de la taille minimal que doit avoir le contenu du champs var min_size = formulaire_elements[i].getAttribute('fw_min_size'); // Si le contenu du champ ne contient pas assez de caractères if ( formulaire_elements[i].value.length < min_size ) { tab_size.push( formulaire_elements[i].getAttribute('fw_lib') +" doit contenir au moins "+ min_size +" caractères"); } } // Si une taille maximale est fournie if ( formulaire_elements[i].getAttribute('fw_max_size') != null ) { // Récupération de la taille maximale que doit avoir le contenu du champs var max_size = formulaire_elements[i].getAttribute('fw_max_size'); // Si le contenu du champ contient trop de caractères if ( formulaire_elements[i].value.length > max_size ) { tab_size.push( formulaire_elements[i].getAttribute('fw_lib') +" ne doit pas contenir plus de "+ max_size +" caractères"); } } /***********************************************/ //On verifie les differents type "entier" /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="int") { //Si il n'est pas de type entier, on met le nom du champs dans le tableau if(isNotInt(formulaire_elements[i].value)) { var j = tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type'); } } /***********************************************/ //On verifie les differents type "float" /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="float") { //Si il n'est pas de type float, on met le nom du champs dans le tableau if(isNotFloat(formulaire_elements[i].value)) { var j = tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type'); } } /***********************************************/ //On verifie les differents type "email" /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="email") { //Si il n'est pas de type email, on met le nom du champs dans le tableau if(isNotEmailAdress(formulaire_elements[i].value)) { var j = tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type'); } } /***********************************************/ //On verifie les differents type "cp" / Code Postale /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="cp") { //Si il n'est pas de type code pstal, on met le nom du champs dans le tableau if(isNotCodePostal(formulaire_elements[i].value)) { var j = tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type'); } } /***********************************************/ //On verifie les differents type "date" /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="date") { //Si il n'est pas de type date, on met le nom du champs dans le tableau if(isNotDate(formulaire_elements[i].value,formulaire_elements[i].getAttribute('fw_mode'))) { var j = tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type') + " au format " + formulaire_elements[i].getAttribute('fw_mode'); } } /***********************************************/ //On verifie les differents type "alpha numerique" /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="alphanum") { //Si il n'est pas de type alphanumeric, on met le nom du champs dans le tableau if(isNotAlphanumeric(formulaire_elements[i].value)) { var j= tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type'); } } /***********************************************/ //On verifie le type "url" /***********************************************/ if(formulaire_elements[i].getAttribute('fw_type')=="url") { //S'il n'est pas de type "url", on met le nom du champs dans le tableau if(isNotUrl(formulaire_elements[i].value)) { var j= tab_type.length; tab_type[j] = new Array(); tab_type[j]["lib"] = new Array(); tab_type[j]["type"] = new Array(); tab_type[j]["lib"] = formulaire_elements[i].getAttribute('fw_lib'); tab_type[j]["type"] = formulaire_elements[i].getAttribute('fw_type'); } } } } /***********************************************/ // 2.1) CAS DE L INPUT RADIO /***********************************************/ if(formulaire_elements[i].nodeName=="INPUT" && formulaire_elements[i].getAttribute('type')=="radio" && name!= formulaire_elements[i].getAttribute('name') && formulaire_elements[i].getAttribute('fw_obligatoire')=="oui") { var name=formulaire_elements[i].getAttribute('name'); if(testerRadio(formulaire.elements[name])== false) { tab_oblig.push(formulaire_elements[i].getAttribute('fw_lib')); } } /***********************************************/ // 2.2) CAS DE L INPUT CHECKBOX /***********************************************/ // 2.2.1) Checkbox obligatoire if(formulaire_elements[i].nodeName=="INPUT" && formulaire_elements[i].getAttribute('type')=="checkbox" && name!= formulaire_elements[i].getAttribute('name') && formulaire_elements[i].getAttribute('fw_obligatoire')=="oui") { var name=formulaire_elements[i].getAttribute('name'); if( !formulaire.elements[name].checked ) { tab_oblig.push(formulaire_elements[i].getAttribute('fw_lib')); } } // 2.2.1) Checkbox "au moins un obligatoire" if(formulaire_elements[i].nodeName=="INPUT" && formulaire_elements[i].getAttribute('type')=="checkbox" && formulaire_elements[i].getAttribute('fw_check_obligatoire') != undefined) { var name = formulaire_elements[i].getAttribute('name'); var key = formulaire.elements[i].getAttribute('fw_check_obligatoire'); if( tab_check_obligatoire[key] == undefined ) { tab_check_obligatoire[key] = {}; tab_check_obligatoire[key]['lib'] = formulaire_elements[i].getAttribute('fw_lib'); tab_check_obligatoire[key]['nb'] = 0; } if( formulaire.elements[i].checked ) { tab_check_obligatoire[key]['nb']++; } } /***********************************************/ // 3) CAS DE LA COMBOBOX /***********************************************/ if(formulaire_elements[i].nodeName=="SELECT") { var vide=0; if(formulaire_elements[i].getAttribute('fw_obligatoire')=="oui") { for ( var k=0; k