2017-02-14 2 views
3

Ich benutze JQuery, um dynamische Dropdown-Boxen zu erstellen (die Auswahl der ersten Drop-Down-Filter-Optionen in der zweiten). Ich versuche, eine Überprüfung für einen umgekehrten Anwendungsfall zu erstellen (Auswahl von zweiten Dropdown-Kräfte zugeordneten Auswahl in der ersten).Den ausgewählten Wert einer Dropdown-Liste mit einer JavaScript-Variablen festlegen

ich vorher diesen Code verwendet haben, um erfolgreich den aktiven Wert festgelegt:

$("#department option[value='Other']").prop('selected', true); 

Nun, ich versuche, das gleiche wie oben zu tun, sondern durch einen variablen Wert anstelle eines hartcodiert ein verwenden. Dies ist der Code, den ich bisher habe:

var selected_campus = $("#college")[0].options[$("#college")[0].selectedIndex].text.split(":",1).toString(); 
$("#campus option[value=selected_campus]").prop('selected', true); 

Die erste Zeile funktioniert gut und der gewünschte Wert wird erfolgreich in selected_campus gespeichert. Die zweite Zeile tut dies jedoch nicht. Wie kann ich den ausgewählten Wert von #campus auf selected_campus setzen?

+0

Notieren Sie sich den Wert Leerzeichen oder andere Zeichen die einfachen Anführungszeichen den Fall, dass das 'split' ein Array zurückgibt, und Sie zwingen dieses Array zu einer Zeichenfolge. Der einzige Grund, warum es funktioniert, ist, dass Sie ein Limit hinzugefügt haben, so dass Sie immer ein einzelnes Element im Array erhalten, und wenn Sie dieses Array stringieren, wird hoffentlich das erwartete Ergebnis zurückgegeben. Ich würde etwas wie 'split (':') denken. Shift()' wäre eine bessere Option? Und die Verwendung einiger Datenattribute zur Identifizierung der Optionen wäre noch besser. – adeneo

+0

@adeneo Danke für die Rückmeldung. Ich bin immer noch ziemlich neu, also war mir Shift() nicht bewusst und es scheint genau das zu tun, was ich brauche! –

+0

Die ganze Zeile sieht zweifelhaft aus, es gibt wahrscheinlich bessere Möglichkeiten, um die Optionen in einer Art System miteinander zu verbinden – adeneo

Antwort

3

Sie waren in der Nähe; Sie müssen nur die Variable selected_campus mit dem Selektor (string) unter Verwendung des + und Apostrophe ' Zeichen, wie verketten:

$("#campus option[value='"+selected_campus+"']").prop('selected', true); 
________________________^_^_______________^_^ 

statt: das hilft

$("#campus option[value=selected_campus]").prop('selected', true); 

Hoffnung.

2

Sie müssen die Variable in den Code ersetzen:

$("#campus option[value='" + selected_campus + "']").prop('selected', true); 

Sie wäre es

Verwandte Themen