/******************************************************************************************** Le textearea à contrôler Le nombre maximum de caractères à ne pas dépasser '''*******************************************************************************************/ function checkTextAreaMaxLength(objElement, intMaxCharateresNb){ if (objElement.value.length > intMaxCharateresNb) { alert("Veuillez ne saisir qu'au plus " + max + " caractères !"); objElement.value = objElement.value.substr(0, intMaxCharateresNb) } } /******************************************************************************************** Vérifie que la chaîne passée en paramètre est une adresse email Chaîne à vérifier true si la chaîne est correctement formatée, false sinon '''*******************************************************************************************/ function bMailIsValid(emailAddress) { var re = /^(([^<>()[\]\\.,;: @\"]+(\.[^<>()[\]\\.,;:@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ return (re.test(emailAddress) && (emailAddress.indexOf(' ') == -1)); } /************************************************************************************* NOM : bVerifRegExp DESCRIPTION : Vérifie qu'une chaîne correspond à un motif d'expression régulière donné PARAMETRES : @sStringToCheck : Chaîne à vérifier @sExpReg : Motif d'expression régulière à vérifier RETOUR : vrai si le champ contient uniquement des caractères autorisés, faux sinon *************************************************************************************/ function bVerifRegExp(sStringToCheck, sExpReg) { var oRegExp = new RegExp(sExpReg,"g"); if (!oRegExp.test(sStringToCheck) ){ alert("L'expression [" + sStringToCheck + "] contient un(des) caractère(s) non autorisé(s)."); return false; } return true; } /******************************************************************************* NOM : bVerifFieldAsForbiddenCharacter DESCRIPTION : Vérifie qu'un champ possède ou non un caractère interdit PARAMETRES : @asFormName : Nom du formulaire @asFieldName : Nom du champ à vérifier @asFieldLibelle : Libellé du champ à vérifier @asForbidChar : caractère interdit RETOUR : vrai si le champ a au moins une fois le caractère interdit, faux sinon *******************************************************************************/ function bVerifFieldAsForbiddenCharacter(asFormName, asFieldName, asFieldLibelle, asForbidChar){ var oField = eval("document." + asFormName + "." + asFieldName) var sFieldContent = oField.value; if(sFieldContent.indexOf(asForbidChar) == -1){ return false; }else{ alert("Le champ '" + asFieldLibelle + "' ne peut pas contenir le caractère '" + asForbidChar + "'"); oField.focus(); return true; } } /************************************************************ NOM : bCheckFieldIsNumber DESCRIPTION : Vérifie qu'un champ est numérique PARAMETRES : @asFormName : Nom du formulaire @asTxtFieldName : Nom du champ à vérifier RETOUR : vrai si le champ n'est pas numérique, faux sinon ************************************************************/ function bCheckFieldIsNumber(asFormName, asTxtFieldName){ var oFieldName = eval("document." + asFormName + "." + asTxtFieldName); if (oFieldName){ var iFieldValue = oFieldName.value; if (!isNaN(iFieldValue)){ alert("Vous ne pouvez nommer un tarif sans au moins un caractère alphabétique.") oFieldName.focus(); return false; }else{ return true; } } else { return true; } } /************************************************************ NOM : bFieldIsEmpty DESCRIPTION : Vérifie qu'un champ est rempli ou non Ne considère que les champs dont la propriété "style.display" n'est pas à "none" PARAMETRES : @sForm : Nom du formulaire @sFieldName : Nom du champ à vérifier RETOUR : vrai si le champ est vide, faux sinon ************************************************************/ function bFieldIsEmpty(sForm, sFieldName){ try{ var oField = eval("document." + sForm + "." + sFieldName); if(oField.tagName.toLowerCase() == "select") { return false; } if(oField.length > 1){ var bIsOneChecked = false; for(var i=0;iVérifie la contenance d'un ensemble de champs. Si la clé (libellé) d'un champ du tableau passé en paramètre contient le mot "date", on vérifie que ce champ est au format date. Si la clé(libellé) d'un champ du tableau passé en paramètre contient le mot "email", on vérifie que ce champ est une adresse email Nom du formulaire Tableau regroupant les champs à vérifier. La clé correspond au libellé affiché si le champ concerné est vide ex : sFieldsNames["Libellé"] = NomDuChamp Ce troisieme parametre permet de tester si la valeur à tester repond à la paternne de check. vrai: vérification est ok faux: un élément au moins n'est pas valide ******************************************************************/ function bCheckFields(sForm, sFieldsNames){ var bIsOneEmpty = false; var sTitleForOneElement = "Veuillez renseigner l'information suivante:\n\n"; var sTitle = "Veuillez renseigner les informations suivantes:\n\n"; var sMessage = ""; var oForm = eval("document." + sForm); var sChampValue; var oElement; var oFirstWrongElement; var intNbWrongElements = 0; for(sFieldLibelle in sFieldsNames){ //Obtention de l'élément en cours d'analyse oElement = eval("oForm." + sFieldsNames[sFieldLibelle]); //Obtention de la valeur du champ en cours d'analyse sElementValue = oElement.value; //Obtention du nom de l'élément en cours d'analyse sElementName = sFieldsNames[sFieldLibelle]; if (bFieldIsEmpty(sForm, sElementName)){ //Elément non renseigné -> alimentation du message final if(!bIsOneEmpty) oFirstWrongElement = oElement; bIsOneEmpty = true; sMessage += "- " + sFieldLibelle + "\n"; intNbWrongElements++; }else if((sFieldLibelle.indexOf("date") != -1) || (sFieldLibelle.indexOf("Date") != -1)){ //Vérification de date if(!checkDate(sElementValue)){ alert("La date doit être au format jj/mm/aaaa"); oElement.focus(); return false; } }else if((sFieldLibelle.indexOf("email") != -1) || (sFieldLibelle.indexOf("Email") != -1)){ //Vérification d'émail if(!bMailIsValid(sElementValue)){ alert("L'adresse email semble ne pas être correctement formée"); oElement.focus(); return false; } } if(arguments[2] && arguments[2][sFieldLibelle]) { if(!bCheckFieldsWithPATTERN(arguments[2][sFieldLibelle], oElement, sFieldLibelle)) { return false; } } } if(bIsOneEmpty){ if(intNbWrongElements == 1){ alert(sTitleForOneElement + sMessage); }else{ alert(sTitle + sMessage); } //Focus sur le premier "mauvais" élément rencontré if(oFirstWrongElement.focus && !(oFirstWrongElement.type && oFirstWrongElement.type == "hidden")){ oFirstWrongElement.focus(); } return false; } return true; } /* '''******************************************************************************************** ''' ''' Check les champs demandes ''' ''' ''' ''' ''' 23/04/2008 Created ''' '''******************************************************************************************** */ function bCheckFieldsWithPATTERN(strPatterntoCheck, objFormElement, strNameElementforMessage) { var objMyRegExp_ = new RegExp(strPatterntoCheck, "g"); arrWrongCharactersMatches_ = objFormElement.value.match(objMyRegExp_); if (arrWrongCharactersMatches_!= null) { // on supprime les doublons arrWrongCharactersMatches_ = supDoublons(arrWrongCharactersMatches_); if (strNameElementforMessage != '') { alert("Le champ saisi \'" + strNameElementforMessage + "\' contient un(des) caractère(s) non autorisé(s).\nLes caractères en defaut sont : " + arrWrongCharactersMatches_.join(" ")); objFormElement.focus(); } return false; } else { return true; } } /***************************************************************** NOM : sCheckFieldsAndSend DESCRIPTION : Vérifie la contenance d'un ensemble de champs. Soumet le formulaire si tous les champs sont remplis. Si la clé (libellé) d'un champ du tableau passé en paramètre contient le mot "date", on vérifie que ce champ est au format date. Les éléments cachés ne sont pas pris en compte. PARAMETRES : @sForm : Nom du formulaire @sFieldsNames : Tableau regroupant les champs à vérifier. La clé correspond au libellé affiché si le champ concerné est vide ex : sFieldsNames["Libellé"] = NomDuChamp ******************************************************************/ function sCheckFieldsAndSend(sForm, sFieldsNames){ var bIsOneEmpty = false; var sMessage = "Veuillez renseigner le(s) champ(s) suivant(s):\n\n"; var oForm = eval("document." + sForm); var sChampValue; var oElement; for(sFieldLibelle in sFieldsNames){ //Obtention de l'élément en cours d'analyse oElement = eval("oForm." + sFieldsNames[sFieldLibelle]); if(oElement.style && (oElement.style.display != "none")){ //Obtention de la valeur du champ en cours d'analyse sElementValue = oElement.value; //Obtention du nom de l'élément en cours d'analyse sElementName = sFieldsNames[sFieldLibelle]; if (bFieldIsEmpty(sForm, sElementName)){ bIsOneEmpty = true; sMessage += "- " + sFieldLibelle + "\n"; }else if((sFieldLibelle.indexOf("date") != -1) || (sFieldLibelle.indexOf("Date") != -1)){ if(!checkDate(sElementValue)){ alert("La date doit être au format jj/mm/aaaa"); oElement.focus(); return; } }else if((sFieldLibelle.indexOf("email") != -1) || (sFieldLibelle.indexOf("Email") != -1)){ if(!bMailIsValid(sElementValue)){ alert("L'adresse email semble ne pas être correctement formée"); oElement.focus(); return; } } } } if(bIsOneEmpty){ alert(sMessage); }else{ oForm.submit(); } } function remplacer(b){ if(isNaN(b)){ b = b.replace(",","."); if(isNaN(b)){ b = b.replace(".",","); } } return b; } function verifUserHabilEtDroits(obj ,aFormName, aDestination, aMessage){ var sTypes = ""; var sType_champs; var bSvceChecked = false; var bTransChecked = false; var sElmtName; var bDecision; var sMessage = ""; var oForm = eval("document."+aFormName); for(var cpt=0;cpt < oForm.length;cpt++){ sType_champs = oForm.elements[cpt].type; sElmtName = oForm.elements[cpt].name if(sType_champs == "checkbox" && sElmtName.length > 6 && sElmtName.indexOf("check_")==0){ if(oForm.elements[cpt].checked){ bSvceChecked = true; } } } if(!bSvceChecked && !oForm.check_.checked){ sMessage = "L'utilisateur n'a aucune habilitation.\n"; } if(sMessage != ""){ sMessage += aMessage + " l'utilisateur?"; if(confirm(sMessage)){ valider(obj,'envoyer(var1,var2)'); } } if((bSvceChecked || oForm.check_.checked)){ valider(obj,"envoyer(var1,var2)"); } } function valider(obj,action) { obj = eval(obj); var cpt,type_champs,F,ok; var ok=true; F = eval("document."+obj.form.name); for(var cpt=0;cpt < F.length;cpt++){ type_champs=F.elements[cpt].type; if (type_champs=="text" || type_champs=="textarea") { var objet = F.elements[cpt]; while ((objet=objet.parentElement)!=null) { if (objet.tagName=="DIV") { if(objet.style.visibility != "hidden"){ objet = null; } break; } } if (objet == null){ if (F.elements[cpt].value!="" || F.elements[cpt].longueur!="-1"){ if (F.elements[cpt].valider=="1") { ok = verifier(F.elements[cpt].choix,F.elements[cpt].value,F.elements[cpt].longueur); if (!ok) { F.elements[cpt].focus();break; } } else { if(F.elements[cpt].value.length < F.elements[cpt].longueur ){ ok = false; alert("Erreur de données dans le champ. Le nombre minimum de caractères pour que le champ soit valide est de "+ F.elements[cpt].longueur); F.elements[cpt].focus();break; } } } } } else { if(type_champs=="select-one"){ if (F.elements[cpt].value=="" && F.elements[cpt].longueur){ ok = false; alert("Erreur de données dans le champ. Vous devez obligatoirement choisir un " + F.elements[cpt].name + " dans le menu " + F.elements[cpt].description); F.elements[cpt].focus();break; } } } } if(ok) { action = eval(action); action; return true; } else { return false; } } function verifier(choix,chaine,longueur) { if (chaine.length < longueur) { alert("Erreur de données dans le champ. Le nombre minimum de caractères pour que le champ soit valide est de "+ longueur); return false; } /*switch(choix){ case "Mail" : return(verifier_Mail(chaine));break; case "Tel" : return(verifier_Tel(chaine));break; case "Taux" : return(verifier_taux(chaine));break; case "Numerique" : return(verifier_numerique(chaine));break; default : return(verifier_chaine(choix,chaine));break; } return false;*/ /*aucune vérification*/ else { return true; } } function verifier_Tel(Tel) { var t=""; chaine = "0123456789"; for(a=0;a