function bCheckIfElementIsReachable(objElementToCheck) { return (objElementToCheck && objElementToCheck.style && (objElementToCheck.style.display != "none")); } 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) } } 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; } } function bFieldIsEmpty(sForm, sFieldName){ try{ var oField = eval("document." + sForm + "." + sFieldName); if(oField.tagName && (oField.tagName.toLowerCase() == "select")) { if(oField.options.length == 0) { return false; } return oField.options[oField.options.selectedIndex].value == ""; } if(oField.length > 1){ var bIsOneChecked = false; for(var i=0;i " + exp); } } /************************************************************ NOM : checkDate DESCRIPTION : Vérifie que la chaine dateString est bien une date (format francais) [J]J/[M]M/[AA]AA PARAMETRES : @dateString : Nom du champ à vérifier RETOUR : vrai si la chaîne est bien formatée ************************************************************/ function checkDate(dateString){ var position, oldPosition=0; var regExp = /^([0-3]\d|\d)\/([0-1]\d|\d)\/(\d{4}|\d{2})$/; var test = dateString.match(regExp); var jour, mois, annee; if(test){ position = test[0].indexOf("/", oldPosition); jour = test[0].substring(oldPosition, position); oldPosition = position +1; position = test[0].indexOf("/", oldPosition); mois = test[0].substring(oldPosition, position); oldPosition = position +1; annee = test[0].substring(oldPosition, test[0].length); if (mois==2){ return ((annee%4)==0)? jour <=29: jour<29; } else if (mois<8) { return ((mois%2)==0)? jour<31: jour<=31; } else if(mois<=12) { return ((mois%2)==0)? jour<=31: jour<31; } } return false; } 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.tagName == "SELECT") ? oElement.options[oElement.options.selectedIndex].value : 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(sFieldLibelle + " doit être au format jj/mm/aaaa"); if(bCheckIfElementIsReachable(oElement)) { 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