Bonjour,

Pour l'instant j'ai ceci...
Mon but est que le champ text "precision_lieu" soit obligatoire si l'option "Autre" est choisie. Cependant, les 2 méthodes que j'ai testées ne fonctionnent pas...

Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<form action="" method="post" onsubmit="return validateForm()" name="formulaire">    <!-- onsubmit et name pour la méthode 2 -->
<select name="lieu" onchange="champLieu(this);">
    <option value="Lieu1">Lieu1</option>
    <option value="Lieu2">Lieu2</option>
    <option value="Autre">Autre</option>
</select>
          <div id="siAutre" style="display: none;">
            <label for="precision_lieu"></label> <input type="text" name="precision_lieu" id="idLieu" placeholder="Préciser"/>
          </div>
</form>

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
15
16
17
18
19
20
function champLieu(that) {
    if (that.value == "Autre") {
        document.getElementById("siAutre").style.display = "block";
	document.getElementById("idLieu").required = true;
    } else {
        document.getElementById("siAutre").style.display = "none";
	document.getElementById("idLieu").required = false;
    }
}
 
//méthode 2 (donc c'est soit l'une, soit l'autre, pas les 2 en même temps)
function validateForm() {
	if(document.getElementById("siOui").style.display == "block"){
		let x = document.forms["formulaire"]["precision_lieu"].value;
		if (x == "") {
			alert("Le champ 'Autre' doit être complété.");
			return false;
		}
	}
}