Formulaire JS, données au chargement de la page
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:
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