Comment changer la couleur d'un champ HTML en vert ou rouge selon qu'il soit rempli ou pas ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-10-10 11:20:26
Question

J'ai un formulaire HTML avec plusieurs champs input du type texte ; comment puis-je changer la couleur des champs HTML, en vert ou en rouge, selon qu'ils soient remplis ou pas ?

Réponse

Pour changer la couleur des champs d'un formulaire HTML, selon qu'ils soient remplis ou pas, vous pouvez utiliser JavaScript pour détecter les évènements qui amènent au changement de couleurs, et CSS pour colorer les champs input du formulaire.

Dans l'exemple suivant, on attribue la class exemple à l'ensemble des champs input du formulaire : class="exemple", et les évènements onchange et onclick exécutent la fonction JavaScript vérifier() ; elle change la couleur des champs du formulaire, selon qu'ils sont remplis ou non.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Comment changer la couleur d'un champ HTML en vert ou rouge selon qu'il soit rempli ou pas ?</title>  
</head>
<body> 
<input type="text" class="exemple" name="1" value="" onchange="verifier();">
<input type="text" class="exemple" name="2" value="" onchange="verifier();"> 
<input type="text" class="exemple" name="3" value="" onchange="verifier();"> 
<input type="button" value="valider" onclick="verifier();">
<script> 
function verifier()
{
const elements = document.querySelectorAll(".exemple");
Array.from(elements).forEach((element, index) => 
{
if (element.value != '')
{ 
element.style.border = "2px solid green"; 
}
else
{
element.style.border = "2px solid red";
}
});
}
</script> 
</body> 
</html>