Wie kann ich das Select2 Dropdown-Menü aktualisieren, nachdem ich einen anderen Inhalt geladen habe?
Ich bin mit Select2 in einer Kombination von dropdown-Menüs. Ich habe ein Menü für "Länder" und "Staaten/Provinzen". Je nach dem Land, das gewählt wird, wird der "Bundesländer" dropdown-content-änderungen. Die Staaten/Provinzen gezogen werden, die mit ajax aus einer Datenbank und dann auf diese Weise angezeigt wird:
$display_output = '<select style="width:350px;" tabindex="2" name="state" id="state" data-placeholder="Choose a Country..."> ';
$display_output .= '<option value="" selected>Select a State</option> ';
while ($state_details = $this->fetch_array($sql_select_states))
{
$display_output .= '<option value="' . $state_details['id'] . '" ' . (($selected_value == $state_details['id']) ? 'selected' : ''). '>' . $state_details['s.name'] . '</option>';
}
$display_output .= '</select>';
So weit, So gut. Alle Provinzen ändern, richtig, aber beim ersten laden, der Select2 zeigt, "undefined" für die Staaten dropdown, obwohl ich habe es als
data-placeholder="Choose a Country..."
Gehe ich davon aus dass es sein könnte, da auf das laden, die dem ausgewählten Land wird "Vereinigte Staaten" und es wird eine Liste der Staaten, aber keiner von Ihnen Standard-oder ausgewählt werden. Gibt es eine andere Möglichkeit einen Standardwert festlegen, so dass es nicht zeigen, "Undefined"?
Und eine andere (aber weniger wichtig) problem ist, dass, wenn jemand wählt die "Vereinigten Staaten" zum Beispiel, und wählt dann "Arizona", wenn die person, dann ändert sich in "Kanada" als das Land, den Zustand von "Arizona", bleibt aber beim öffnen der dropdown den Provinzen von Kanada sind frei wählbar. Gibt es eine Möglichkeit es zurück zu der Standard-Wert vorübergehend, wenn jemand wählt ein anderes Land, bis eine Provinz ist erneut gewählt?
Mein code zum laden ist derzeit nur:
<script>
$(document).ready(function() { $("#state").select2(); });
</script>
InformationsquelleAutor der Frage user1227914 | 2013-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wählen Sie 3.*
Finden Sie Update select2 Daten ohne Umbau der Steuerung da es sich hierbei um ein Duplikat. Ein anderer Weg ist, zu zerstören, und erstellen Sie dann die gewünschten select2 element.
Wenn Sie Probleme mit dem zurücksetzen des Staates/der region auf Land ändern, versuchen Sie, löschen Sie den aktuellen Wert mit
Sehen Sie die Dokumentation hier http://ivaynberg.github.io/select2/beschreibt fast/alle Funktionen. Select2 unterstützt Veranstaltungen wie
change
verwendet werden kann zum aktualisieren der nachfolgenden dropdowns.Wählen Sie 4.* Update
Können Sie jetzt die Daten aktualisieren/Liste ohne Umbau der Steuerung mit:
InformationsquelleAutor der Antwort SamV
Es ist üblich, für andere Komponenten zu hören, die ändern event, oder für benutzerdefinierte Ereignis-Handler angebracht werden, die Nebenwirkungen haben können. Select2 nicht über ein benutzerdefiniertes Ereignis (wie select2:update)die ausgelöst werden können, andere als ändern. Verlassen Sie sich auf die jQuery-event-Namensräume Begrenzung des Anwendungsbereichs auf Select2 obwohl durch das auslösen der *ändern.select2 Veranstaltung.
InformationsquelleAutor der Antwort Chintan7027
select2
hat dieplaceholder
parameter. VerwendenInformationsquelleAutor der Antwort Khawer Zeshan
Verwenden Sie das folgende Skript aus, nachdem man Ihr wählen.
Nicht verwenden
destroy
.InformationsquelleAutor der Antwort Parth Patel