// permet d'inverser la visibilité d'un div function inverse_visibilite(id_balise){ document.getElementById(id_balise).style.display = document.getElementById(id_balise).style.display != 'block' ? 'block' : 'none'; } // ********************************** // CHECK FORM // ********************************** var reg_email = /^[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)*\.[\w\-]{2,}$/; var error = ''; // Nom des Champs obligatoires du formulaire var fields = new Array(); // Titre de ces champs var fields_title = new Array(); // Champs numériques var fields_numeric = new Array(); // Emails a vérifier var fields_email = new Array(); var field_classname_normal = 'field_normal'; var field_classname_error = 'field_error'; // Vérification formulaire demande function check_form(form) { // champ courant var field = null; // s'il est correctement rempli var res = false; var j = 0; // Boucle sur tous les champs du form for(var i = 0; i < form.elements.length; i++) { error = ''; if(form.elements[i].type) // eviter de changer la classe d'autres éléments que des input, select, .... form.elements[i].className = field_classname_normal; if(form.elements[i].name != fields[j]) continue; if(j >= fields.length ) break; // Vérification du champs obligatoire field = form.elements[fields[j]]; res = false; // Selon son type switch(field.type) { // Hidden case 'hidden' : res = true; break; // Select case 'select-one' : res = field.selectedIndex > 0 || (field.selectedIndex == 0 && field.options[field.selectedIndex].value != '' && field.options[field.selectedIndex].value > 0); break; // text ou textarea case 'text' : case 'password' : case 'textarea' : res = field.value != ''; // OK, alors voyons voir s'il s'agit d'un champ email if(res && fields_email.length > 0) { for(var k = 0; k < fields_email.length; k++) { if(field.name == fields_email[k]) { res = reg_email.test(field.value); if(!res) { error = 'Vous devez préciser un email valide'; break; } } } } // OK, alors voyons voir s'il s'agit d'un champ numéric if(res && fields_numeric.length > 0) { for(var k = 0; k < fields_numeric.length; k++) { if(field.name == fields_numeric[k]) { res = !isNaN(field.value); if(!res) { error = 'Le champ "'+fields_title[j]+'" doit être composé de chiffres uniquement'; break; } } } } break; // pour les radio ou checkbox default : if(field.length) { for(var k = 0; k < field.length; k++) { field[k].parentNode.parentNode.className = field_classname_normal; res = field[k].checked; if(res) break; } } } if(!res) break; j++; } // Si mal rempli if(!res) { error = (error == '') ? 'Le champ "' + fields_title[j] +'" est obligatoire' : error; alert(error); if(field.focus) { field.focus(); field.className = field_classname_error; } else if(field.length) { var opt = null; for(var k = 0; k < field.length; k++) { opt = field[k].parentNode; field[k].parentNode.parentNode.className = field_classname_error; } // -> focus sur le premier élément window.scrollTo(0,opt.offsetTop); } return false; } return true; }