Domanda

Ho un insieme di valori che sono presenti nella pagina di caricamento: ad esempio [1193,1184,2372].

Ho un dropdownchecklist che può assumere un valore unico in questo modo $ ( "Ddl.") Dropdownchecklist () val (1193);..

Quando ho associare nuovamente il dropdownchecklist questo seleziona il valore corretto. Comunque ho provato passando il mio array contenente più valori al metodo val () e che non seleziona i valori. I tipi di aspettavo questo. Io non sono sicuro di come fare migliore di preselezione.

Ho provato l'iterazione mia matrice per creare un attributo filtro da applicare come la seguente: . $ ( "Ddl [valore * = '1184'] [valore * = '9067'] [valore * = '14841']") attr ( 'selezionato', 'selezionate');

, ma questo non funziona. Io non voglio avere per scorrere tutte le opzioni del ddl e impostarle per selezionare se corrispondono in quanto vi sono centinaia di opzioni e questo non sarà buona prestazione saggia, soprattutto se ci sono solo 2 opzioni da preseleted.

Tutte le idee?

È stato utile?

Soluzione

Crea una serie di quelli selezionati per creare la stringa di selezione jQuery e metterlo nella .find () Funzione:

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'); 

Si noti inoltre, quando si confrontano un menu a discesa con un valore, si sta guardando per l'elemento option nella select, non l'elemento di selezione in sé.

Altri suggerimenti

ho preso a lavorare con questo, ma la risposta di cui sopra sembra che una buona soluzione:

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

Non sono sicuro che rischia di essere più veloce, ma le mine un po 'più pulito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top