onchange="submit()" à problème...
Posté : 30 avr. 2005, 11:35
J'en appelle aux ténors du JavaScript, j'essaye de faire fonctionner un rafraichissement automatique et le résultat est... comment dire.... minable, voilà le mot 
Pour quelques détails pour bien cerner le problème. Je me monte un site comportant six feuilles de style différentes. En haut de ma page, j'ai un petit formulaire pour choisir l'un de ces styles ou la version minimaliste sans style du tout.
Ce formulaire fonctionne très bien, en voici la source de base:
J'ai essayé en rajoutant dans la balise <select> :
Je nage dans la perplexité... Si quelqun a une idée ou une solution ou une piste où chercher.... merci d'avance
Pour quelques détails pour bien cerner le problème. Je me monte un site comportant six feuilles de style différentes. En haut de ma page, j'ai un petit formulaire pour choisir l'un de ces styles ou la version minimaliste sans style du tout.
Ce formulaire fonctionne très bien, en voici la source de base:
<form method="post" id="chgstyle" action="/monsite/index.php">
<label>Choisissez votre style de page :
<select name="styles" id="styles" title="Choisissez le style d'affichage des page de ce site selon vos goûts">
<option value="blanc" >Blanc</option>
<option value="vert" selected="selected">Vert</option>
<option value="orange" >Orange</option>
<option value="rouge" >Rouge</option>
<option value="bleu" >Bleu</option>
<option value="noir" >Noir</option>
<option value="minimum" >Minimum</option>
</select></label>
<input type="submit" name="ok" id="ok" value="OK" onmouseover="this.style.color=imprimHoverAvt('vert'); this.style.backgroundColor=imprimHoverArr('vert')" onfocus="this.style.color=imprimHoverAvt('vert'); this.style.backgroundColor=imprimHoverArr('vert')" onmouseout="this.style.color=imprimOutAvt('vert'); this.style.backgroundColor=imprimOutArr('vert')" onblur="this.style.color=imprimOutAvt('vert'); this.style.backgroundColor=imprimOutArr('vert')" title="Validez le choix de style." />
</form>
Pour alléger la tâche de l'internaute, j'ai souhaité le dispenser d'avoir à cliquer sur le bouton [OK].J'ai essayé en rajoutant dans la balise <select> :
<select name="styles" id="styles" title="Choisissez le style d'affichage des page de ce site selon vos goûts" onchange="submit();">
Rien à faire, fonctionne pas. Je me suis dit, soyons syntaxiquement corrects et mettons la totale:
<select name="styles" id="styles" title="Choisissez le style d'affichage des page de ce site selon vos goûts" onchange="document.forms['chgstyle'].submit();">
Résultat tout aussi édifiant. Si par exemple je suis sur le style par défaut en vert, je change la couleur. Le onchange réagit..... me remet "vert" et basta. il ne prend pas le paramètre choisi mais celui qui était sélectionné avant.Je nage dans la perplexité... Si quelqun a une idée ou une solution ou une piste où chercher.... merci d'avance