J'ai essentiellement la même situation que la personne dans la question suivante:
link: Comment montrer / masquer les divs par SELECT. (JQuery) P>
Par la recherche approfondie de Google, j'ai pu proposer plusieurs méthodes différentes dans lesquelles les gens revendiquent leur méthode travaux. Je n'ai pas encore besoin de travailler correctement. Je ne sais pas encore assez sur JQuery pour bien comprendre comment écrire ceci à partir de zéro, je compte donc sur de très bons exemples pour l'instant. P>
Qu'est-ce que j'ai essayé de travailler (basé sur des exemples i "VE trouvé et essayé) est-ce: p> Qu'est-ce que je reçois lorsque je teste ceci: p> Mon cerveau est frit pour la journée. Que puis-je faire pour résoudre ce problème? P> p>
4 Réponses :
Swap show / cachet de sorte qu'il ressemble à ceci:
Je m'excuse de ne pas avoir attrapé cela lorsque je posté à l'origine ... dans mon code de travail, les signes dollar sont présents. Ils doivent avoir été dépouillés lorsque j'ai posté mon code.
Ce code est un peu plus succinct: essentiellement, s'il existe une valeur sélectionnée (c'est-à-dire que l'option n'est pas définie sur "Choisir"), puis tous les éléments de div.box sont indiqués. La div correspondant à l'option sélectionnée est alors cachée. Cela devrait se produire assez rapidement de manière à ce que le flash ne soit pas perceptible. P> p>
Vous avez peut-être mal compris. Je ne veux pas que aucun des éléments div éléments soit montré initialement du tout. Je veux seulement que l'un soit affiché une fois qu'une sélection a été faite.
@Thomas Grant: Ne pas $ ("div.box"). Masquer () les éléments de la page charge?
Je ferais cela:
<script type="text/javascript"> $(document).ready(function(){ $('.box').hide(); $('#dropdown').change(function() { $('.box').hide(); $('#div' + $(this).val()).show(); }); }); </script> <form> <select id="dropdown" name="dropdown"> <option value="0">Choose</option> <option value="area1">DIV Area 1</option> <option value="area2">DIV Area 2</option> <option value="area3">DIV Area 3</option> </select> </form> <div id="divarea1" class="box">DIV Area 1</div> <div id="divarea2" class="box">DIV Area 2</div> <div id="divarea3" class="box">DIV Area 3</div>
Après avoir lu votre code suggéré, j'ai compris que dans mes trois lignes telles que: ('# divarea1 ») [($ (ceci) .val () ==' zone1 ')? "masquer": "montrer"] (); J'ai initialement oublié le semi-deux traînant. Cela peut avoir causé certains des problèmes que j'avais connus. J'ai toutefois essayé votre code et cela effectue exactement ce que je cherchais. Merci!
Si vous avez votre réponse, pourriez-vous fermer la question en cochant la marque à côté du numéro, merci :)
Comment cela fonctionnerait-il si vous le souhaitez, à la page charge, indiquez la div correspondant à l'élément sélectionné de la liste déroulante? C'est-à-dire que je définit le côté du serveur d'élément sélectionné, puis lorsque la page est rendue, indiquez la DIV appropriée (comme opposée à tous ou aucun d'entre eux). Merci!
@Mark Richman: Si vous ajoutez un attribut sélectionné au côté du serveur d'option, il suffit d'ajouter ceci ci-dessous le $ ('. Boîte'). Masquer (); Code> Ligne (à l'intérieur de la fonction Document Ready). ...
$ ('# div' + $ ('# dropdown'). Val ()). spectacle (); code>
@fudgey a donné une belle solution. Mais avoir peu de doute. Cela dépendra de la valeur et de la nécessité de changer Attribut ID de fort> alors je ferais cela
` p>
Pas une réponse à votre question, mais explorez la méthode JQuery # Basculer pour masquer / spectacle conditionnel.