2012-03-28 1 views
0

J'ai un léger problème. J'ai deux listes déroulantes dépendantes. Si vous sélectionnez d'abord sth, puis à la seconde, vous devriez voir les options filtrées. Tout fonctionne bien sur FF mais quand je l'essaye sur IE9 alors toggle arrête de fonctionner. J'ai toutes les options visibles. Mes codes:JQuery .toggle() ne fonctionne pas sur IE9 avec les options de sélection

HH1: 
<select name="color"> 
    <option value="1">blue</option> 
    <option value="2">red</option> 
</select> 

HH2: 
<select name="size"> 
    <option value="0" data-shown="0" data-link="">Please select</option> 
    <option value="1" data-shown="1" data-link="link1">L</option> 
    <option value="2" data-shown="1" data-link="link2">M</option> 
    <option value="3" data-shown="2" data-link="link3">XL</option> 
    <option value="23" data-shown="2" data-link="link4">XM</option> 
</select> 

Mon code jQuery:

$('select[name="color"]').change(function() { 
    var number = parseInt($('option:selected', this).attr('value')); 
    $('select[name="size"] option').each(function(){  
     if (parseInt($(this).attr('data-shown')) != 0){    
      $(this).toggle(false);   
      $(this).toggle(parseInt($(this).attr('data-shown')) == number); 
     }else { 
      $(this).attr('selected', true); 
     }}); 
}).trigger('change'); 

Si vous avez une solution s'il vous plaît aider. ..... Je me demande si je devrais le mettre en document prêt script ou sth.

mon exemple: http://jsfiddle.net/KD7Q5/1/

Répondre

1

La réponse de ShankarSangoli est bonne. J'ajouterai que si vous voulez que les options disparaissent, vous pouvez garder un select caché et en copier les options dans le visible.

Démo: http://jsfiddle.net/XjShS/

Dans cet exemple, j'ai un select nommé hsize (taille cachée ... ne choisissez pas les noms moche comme moi). Cela a toutes les options. Lorsque le gestionnaire change se déclenche, il efface les options de la sélection size, puis ajoute les options appropriées de hsize.

+0

C'est la réponse dont j'ai besoin. Merci fonctionne comme le charme. – ResoR

0

IE ne supporte pas cacher un élément d'option. Si la désactivation fonctionne pour vous, je vous suggère de le faire.

Démo Travailler avec l'option de désactiver - http://jsfiddle.net/KD7Q5/3/

+0

Vous n'avez pas semblé enregistrer vos changements ... Le violon est le même que l'original. –

+0

@JeffB - Vous avez raison. Ici vous allez http://jsfiddle.net/KD7Q5/3/ – ShankarSangoli

+0

Merci pour la réponse rapide. C'est une solution, mais je pense que cela ne satisfera pas mon client ... Je devine que je devrais faire un tableau avec des options et ajouter et enlever certains selon la sélection sur la première liste. Est-il possible d'ajouter et de supprimer dynamiquement des options de select? – ResoR

0

Vous pourriez être mieux avec repeupler dynamiquement l'élément size chaque fois que le choix est fait pour l'élément color. C'est une solution multi-navigateur pour votre "problème" et vous n'aurez pas à faire face aux options de masquage.

Questions connexes