Vorwählen Werte in mulitselect mit jQuery
-
19-09-2019 - |
Frage
Ich habe eine Reihe von Werten, die auf der Seite Laden vorhanden sind: zB [1193,1184,2372].
Ich habe einen dropdownchecklist, die einen einzelnen Wert wie so nehmen $ ( "DDL"). Dropdownchecklist () val (1193);..
Wenn ich die dropdownchecklist rebind wählt diese den Wert korrekt. Allerdings habe ich versucht, meine Array mit mehreren Werten zu den val () Methode übergeben und nicht die Werte auswählen. Ich erwartete Art davon. Ich bin nicht sicher, wie man am besten geht über Vorwählen.
Ich habe versucht, meinen Array iteriert ein Filterattribut zu bauen, wie die folgenden anwenden: . $ ( "Ddl [value * = '1184'] [Wert * = '9067'] [Wert * = '14841']") attr ( 'ausgewählt', 'ausgewählt');
, aber das funktioniert nicht. Ich will nicht alle Optionen in der DDL iterieren mitzuführen und sie zu wählen, wenn sie übereinstimmen, da es Hunderte von Möglichkeiten gibt, und dies wird nicht klug, eine gute Leistung, vor allem, wenn es nur zwei Optionen preseleted werden.
Irgendwelche Ideen?
Lösung
eine Zeichenfolge der ausgewählten Erstellen Sie den jQuery-Selektor-String zu erstellen und sie in die .find put () Funktion:
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');
Beachten Sie auch, wenn ein Drop-Down mit einem Wert zu vergleichen, Sie suchen das option
Element in der Auswahl, nicht das Auswahlelement selbst.
Andere Tipps
Ich habe es mit dieser Arbeit, aber die oben genannte Antwort sieht aus wie eine gute Lösung:
$.each(arr, function(i,s)
{
$(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});
Nicht sicher, das ist wahrscheinlich schneller sein, aber Minen ein wenig saubere.