Bonjour à tous.
Je rencontre un soucis avec un script pour "trier" des options dans un champs select.
Voici ma problématique:
- j'ai un champs select avec comme option des compagnies.
- lorsque je sélectionne une compagnie je dois rendre non sélectionnable les destinations que ne sont pas desservies par cette compagnie
- les destinations sont présentes dans un second champ select.
Voici mon script:
Alors mon script se lance bien, je n'ai pas de soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function lien_destinations() { var compagnies = jQuery("#filtre_compagnies").val(); if (compagnies == null) { jQuery("#filtre_destinations option").prop('disabled', false); } else { var destinations = []; var destinations_selectionnes = jQuery("#filtre_destinations option:selected"); for(var i = 0; i <=compagnies.length; i++) { jQuery("#filtre_destinations option").each(function(){ var Mystring = jQuery(this).attr('data-compagnie'); var tab_val = Mystring.split(' '); //alert(compagnies.length); if(jQuery.inArray(compagnies[i],tab_val) == -1) { //alert('Non inArray'); jQuery(this).prop('disabled', 'disabled'); //jQuery(this).attr('disabled', 'disabled'); } }); } } }
Le problème intervient au moment du test "inArray". Si je dé commente mon alerte les options prendront bien la valeur "disabled".
En revanche si l'alerte est commentée toutes mes options passent en "disabled".
Je n'arrive pas à comprendre pourquoi cet effet se produit.
Si l'un d'entre vous à une idée je suis preneur.
Merci d'avance !
Partager