Bonjour à tous, je réalise un petit formulaire en JS et j'ai un petit soucis avec celui-ci : Il y a 3 select en tout, dont 2 qui n'apparaissent que lorsque l'utilisateur choisi "clefMain" dans le premier select "baseSite".

Le formulaire marche très bien, sauf lorsque l'on recharge la page avec f5 : en effet le navigateur sauvegarde les infos du formulaires sauf pour les 2 select ("clefMain", "choixPack") dont on change l'état (display:initial/display:none) en fonction du premier("baseSite").

Je pense qu'il faut récupérer l'état du premier select et faire un test au début du formulaire pour savoir si l'on doit charger ou non les 2 select en fonction du select qui est affiché.

Ps : Je suis sur wordpress.

Code : 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
function formulaire_site_custom(){
?><script>
 
function baseSiteFunction(baseSite) {
	var clefMainSelect = document.getElementById('clefmain');
	var clefmainLabel = document.getElementById('clefmainLabel');
	var choixPack = document.getElementById('choixPack');
	var choixPackLabel = document.getElementById('choixPackLabel');
 
	if(baseSite == "clefmain"){
		alert(baseSite);
		clefMainSelect.style.display = 'initial';
		clefmainLabel.style.display = 'initial';
		choixPack.style.display = 'initial';
		choixPackLabel.style.display = 'initial';
	}else{
		clefMainSelect.style.display = 'none';
		clefmainLabel.style.display = 'none';
		choixPack.style.display = 'none';
		choixPackLabel.style.display = 'none';
   }
}
</script><?php 
	$retour='<form  action="#" method=\'post\' name=\'formCustomSite\'>
	<label for="nom">Nom</label><input type="text" name="nom" id="nom"   required/>
 
	<label for="email">Email</label><input type="email" name="email" id="email" required/>
	<label for="telephone">Téléphone</label><input type="tel" name="telephone" id="telephone" maxlength="10" />
	<label for="baseSite">Base du site</label><select name="baseSite" id="baseSite" onchange="baseSiteFunction(this.form.elements[\'baseSite\'].options[this.form.elements[\'baseSite\'].selectedIndex].value)" required>
		<option value="surMesure" selected="selected">Sur Mesure</option>
		<option value="clefmain">Clef en main</option>
	</select>
 
	<label style="display:none;" id="clefmainLabel" for="clefmain">Site clef</label>
	<select name="clefmain" id="clefmain" style="display:none;" required>
		<option value="bento">Pronostiqueurs Sportifs - Bento</option>
		<option value="customizer">Pronostiqueurs Sportifs - Customizer</option>  
	</select>
 
	<label style="display:none;" id="choixPackLabel" for="choixPack">Pack</label>
	<select name="choixPack" id="choixPack" style="display:none;" required>
		<option value="Pack1">Pack1</option>
		<option value="Pack2">Pack2</option>  
	</select>
 
	<label for="descriptionProjet">Description du projet</label>
	<textarea  name="descriptionProjet" id="descriptionProjet"  required></textarea>
 
	<label for="info">Informations supplémentaire</label>
	<textarea  name="descriptionProjet" id="descriptionProjet"   required></textarea>
	<input type="submit" onClick=\'this.form.nom.value = "NOUVEAU"\' name="submitSurMesure" id="submitSurMesure"  />
	</form> 
 
';
return $retour;
}add_shortcode( 'formulaire_site_custom', 'formulaire_site_custom' );

Voilà si quelqu'un a une petite suggestion :p Merci