2010-01-15 4 views
0

Hey, pouvez-vous m'aider à comprendre cela? J'ai besoin de cacher/montrer un div basé sur une liste déroulante (la liste déroulante a seulement un nom, aucun id). Si la valeur de la zone de liste déroulante est 2, elle doit être affichée et pour toute autre chose, elle doit être masquée. Voici ce que j'ai jusqu'ici, mais cela ne semble pas fonctionner (j'ai essayé d'utiliser un code similaire sur une case à cocher et ça a bien fonctionné, donc évidemment il me manque quelque chose). (Il est impossible de modifier le code du menu déroulant)Accéder à la liste déroulante Valeur Lorsque modifié par JQuery

JavaScript

$(document).ready(function() { 

$('#addons').hide(); 

$("input[name='configoption[1]']").change(function() { 
     if($(this).val() != 2) { 
       $('#addons').hide(); 
     } else 
       $('#addons').show(); 
     }); 
}); 

}); 

HTML

<select name="configoption[1]"> 
<option value="1" selected="selected">Test 1</option> 
<option value="2">Test 2</option> 
</select> 
<div id="addons"> 
Hi 
</div>  

Répondre

1

Il vous semble tout simplement spécifié le mauvais nom de l'élément, input doit être select.

$("select[name='configoption[1]']") 

assurez-vous que vous obtenez l'élément en faisant ceci:

alert($("select[name='configoption[1]']").length) 

il devrait être autre chose que 0.

+0

je suis arrivé, il était juste une erreur de syntaxe. J'ai changé l'entrée pour sélectionner, et j'ai arrangé le}); des trucs. –

0

Utilisez une option d'échange. Changer

<select name="configoption[1]">

à

<select name="configoption[1]" onchange="javascript:function;">

+0

Désolé, je viens de réaliser que vous avez dit que vous ne pouvez pas changer le code HTML. – crgwbr

Questions connexes