7 votes

Soumettre le formulaire lorsque la valeur de l'élément sélectionné est modifiée sans javascript

Bonjour, la question est assez simple.

<select name="justanumber">
    <option value="1" selected="selected">1</option>
    <option value="2"></option>
</select>

Lorsque la valeur sélectionnée est modifiée, je dois faire un post de formulaire. Mais le problème est de faire cela SANS javascript.

Je ne suis pas sûr qu'il soit possible de faire cela, le meilleur résultat que j'ai archivé est de soumettre le formulaire en utilisant l'étiquette pour.

4voto

Guffa Points 308133

Non, ce n'est pas possible sans utiliser le script du client.

Je vous suggère d'utiliser script pour la façon dont vous voulez que cela fonctionne normalement, et de fournir un bouton submit comme sauvegarde pour ceux qui ne peuvent pas utiliser script.

3voto

Sean Vieira Points 47080

Non, il n'y a pas d'attribut d'auto-submission pour de telles choses - cependant, il existe un moyen de contourner ce problème :

CSS :

#jsOn .Submit {
   display: none;
}

HTML :

<form id="my_form" action="">
<select id="justanumber" name="justanumber">
    <option value="1" selected="selected">1</option>
    <option value="2"></option>
</select>
<input type="submit" value="Go!" class="Submit" />
</form>

JavaScript :

var visible_root = document.getElementsByTagName("body");
while (visible_root.length < 1) {
    continue;
}
visible_root = visible_root[0];
visible_root.id = "jsOn";
document.getElementById("justanumber").onchange = function() {
    document.getElementById("my_form").submit();
};

Lorsque des personnes sans JavaScript arrivent sur votre site, elles voient un bouton d'envoi. Lorsque les personnes qui ont activé JavaScript arrivent sur votre site, le bouton d'envoi est masqué et un message d'avertissement est affiché. onchange sera ajouté à l'événement select élément. (Vous pouvez également ajouter un écouteur d'événements, si vous disposez d'une bibliothèque JavaScript qui normalise tous les événements pour vous).

1voto

John Himmelman Points 6672

Je ne crois pas que cela soit possible sans js. Une approche évidente serait de définir un bouton d'envoi comme valeur de l'option (ex, <option><input type="submit"></option> ). Malheureusement, les navigateurs vont aboyer et se plaindre, en ajoutant l'élément input après l'élément select. Si la sélection détermine le flux de l'application, envisagez d'utiliser un autre élément d'interface utilisateur (par exemple, des boutons, des liens, etc.).

1voto

Roman Kupin Points 141

Voici la réponse. Malheureusement, ce n'est pas possible.

0voto

lparadorn Points 1
<form action="aaa.php" method="post" name="autosubmit_select">
<select name="justanumber" onChange="document.autosubmit_select.submit();">
    <option value="1" selected="selected">1</option>
    <option value="2"></option>
</select>
</form>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X