Question

J'ai un ensemble de valeurs qui sont présentes sur le chargement de la page: par exemple [1193,1184,2372].

J'ai un dropdownchecklist qui peut prendre une valeur unique comme si $ ( "Ddl".) Dropdownchecklist () val (1193)..

Quand je REBIND le dropdownchecklist cela sélectionne correctement la valeur. Cependant, je l'ai essayé passer mon tableau contenant des valeurs multiples à la méthode val () et ne sélectionne pas les valeurs. Je genre de attendais. Je ne suis pas sûr de savoir comment mieux s'y prendre présélectionnant.

J'ai essayé itérer mon tableau pour construire un attribut de filtre à appliquer comme suit: . $ ( "Ddl [valeur * = '1184'] [valeur * = '9067'] [valeur * = '14841']") attr ( 'sélectionné', 'sélectionné');

mais cela ne fonctionne pas. Je ne veux pas avoir à parcourir toutes les options dans le ddl et les mettre à sélectionner si elles correspondent comme il y a des centaines d'options et ce ne sera pas une bonne performance sage, surtout s'il n'y a que deux options à preseleted.

Toutes les idées?

Était-ce utile?

La solution

Créer une chaîne de celles qui sont sélectionnées pour créer la chaîne de sélecteur jQuery et la mettre dans la fonction .Find ():

var str = '';
var arrLength = selectedArray.length;
$.each(selectedArray, function(i){
   str += 'option[value*='+selectedArray[i]+']';
   if((i+1) != arrLength){
     str += ', ';
   }
});

$('.ddl').find("option[value*='1184'], option[value*='9067'], option[value*='14841']")
     .attr('selected','selected'); 

A noter également, lorsque l'on compare un menu déroulant avec une valeur, vous êtes à la recherche de l'élément option dans la sélection, pas l'élément de sélection lui-même.

Autres conseils

Je l'ai eu à travailler avec cela, mais la réponse ci-dessus semble être une bonne solution:

$.each(arr, function(i,s)
{
     $(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});    

Je ne sais pas qui est susceptible d'être plus rapide, mais les mines un peu plus propre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top