Comment vérifier que l'utilisateur a renseigné tous les champs texte d'un formulaire ?
http://javascript.developpez.com/faq...#verifTousTxts

  • syntaxe js vieillotte
  • & à la place de & dans le if
  • remplacement du for in par une boucle avec un compteur, le script ne fonctionnant pas sous FF
  • ajout d'un toLowerCase() sur le type car certains navigateurs écrivent le type en majuscules
  • ajout d'une remarque sur le textarea (qui est un champ texte lui aussi )
  • ajout d'une remarque sur le toLowerCase()


Comment vérifier que l'utilisateur a renseigné tous les champs texte d'un formulaire ?

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
var inputList = document.getElementById("idFormulaire").elements;
var alertTxt = "";
var n = inputList.length;
var i;
 
for (i=0; i<n; i++)
{
    if (inputList[i].type.toLowerCase()=="text" && inputList[i].value.length==0)
    {
        alertTxt += "Le champ " + inputList[i].name + " n'a pas été rempli \n";
    }
}
alert(alertTxt);
Le code ci-dessus peut être généralisé à d'autres types d'inputs (ex : checkbox, radio).
Pour le textarea, la condition est différente car ce n'est pas une balise de type input. La condition portera donc sur l'attribut tagName :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
if (inputList[i].tagName.toLowerCase()=="textarea" && inputList[i].value.length==0)

Remarque :
toLowerCase() est une instruction de l'objet String qui transforme les majuscules d'une chaîne de caractères en minuscules. Cela peut s'avérer nécessaire car certains navigateurs (dont IE pour l'attribut tagName) retournent une chaîne en majuscules. Cette transformation nous permet donc de s'affranchir de la façon dont un navigateur traite l'information contenue dans les attributs type et tagName
Pour la remarque, je trouve que ma dernière phrase est assez mal tournée Si vous trouvez mieux, ça serait bien.