Salut,
Cette fonction récupère tous les éléments d'un formulaire et fais une vérification sur le contenu des champs.
[syntax="javascript"]function TestValidationFormulaire(){
// Récupère tous les éléments du formulaire en cours
var RecupElements = eval('document.forms[0].elements');
var IsNone;
var IsCorrect;
var IsRadioChecked;
var tmp;
// Boucle sur tous les éléments du formulaire
for (i = 0, i2 = RecupElements.length; i < i2; i++) {
// Test pour savoir si le champs est caché
if (RecupElements[i].style.display === 'none') {
// Passe la variable en caché
IsNone = true;
}
else {
IsNone = false;
}
// Passe la variable à vrai
IsCorrect = true;
// Passe la variable à vrai
IsRadioChecked = false;
if (!IsNone) {
// Si le champs n'est pas caché
switch (RecupElements[i].type) {
// Test le type de champs
case "text":
// Test la valeur du champs
if (RecupElements[i].value === "") {
alert(Cor_MessageChamps(RecupElements[i].name));
RecupElements[i].focus;
IsCorrect = false;
}
break;
case "textarea":
// Test la valeur du champs
if (RecupElements[i].value === "") {
alert(Cor_MessageChamps(RecupElements[i].name));
RecupElements[i].focus();
IsCorrect = false;
}
break;
case "select-one":
// Test l'index de la liste
if (RecupElements[i].selectedIndex < 1) {
alert(Cor_MessageChamps(RecupElements[i].name));
IsCorrect = false;
}
break;
case "select-multiple":
// Test l'index de liste
if (RecupElements[i].selectedIndex < 1) {
alert(Cor_MessageChamps(RecupElements[i].name));
IsCorrect = false;
}
break;
default:
if (!RecupElements[i]) { // Simple
switch (RecupElements[i].type) {
case "checkbox":
// Test si l'élément est coché
if (!RecupElements[i].checked) {
alert(Cor_MessageChamps(RecupElements[i].name));
IsCorrect = false;
}
break;
case "radio":
// Test si l'élément est coché
if (!RecupElements[i].checked) {
alert(Cor_MessageChamps(RecupElements[i].name));
IsCorrect = false;
}
break;
}
}
else {
switch (RecupElements[i].type) { // Multiple
case "checkbox":
// Récupère l'objet checkbox
var RecupCheckbox = eval('document.forms[0].' + RecupElements[i].name);
// Boucle sur l'objet
for (j = 0, j2 = RecupCheckbox.length; j < j2; j++) {
// Test si l'objet est coché
if (!RecupCheckbox[j].checked) {
alert(Cor_MessageChamps(RecupElements[i].name));
IsCorrect = false;
break;
}
}
break;
case "radio":
// Récupère l'objet radio
var RecupRadio = eval('document.forms[0].' + RecupElements[i].name);
// Boucle sur l'objet
for (j = 0, j2 = RecupRadio.length; j < j2; j++) {
// Test si l'objet est coché
if (RecupRadio[j].checked) {
IsRadioChecked = true;
break;
}
else {
IsRadioChecked = false;
tmp = j;
}
if (IsRadioChecked) {
break;
}
}
if (!IsRadioChecked) {
alert(Cor_MessageChamps(RecupElements[i].name));
IsCorrect = false;
}
break;
}
}
}
}
// On repasse la variable en non caché
IsNone = false;
if (!IsCorrect) {
// si un champs n'est pas ok on quitte la boucle
break;
}
}
}
[/syntax]