Heim > Web-Frontend > js-Tutorial > Wie füllt man kaskadierende Dropdown-Listen dynamisch mit jQuery?

Wie füllt man kaskadierende Dropdown-Listen dynamisch mit jQuery?

Barbara Streisand
Freigeben: 2024-11-03 03:13:29
Original
497 Leute haben es durchsucht

How to Dynamically Populate Cascading Dropdowns with jQuery?

Kaskadierende Dropdown-Listen mit jQuery füllen

Problem

Wenn Sie ein Formular mit zwei Dropdown-Listen (Land und Stadt) erstellen, müssen Sie diese dynamisch machen, damit Es sind nur die Städte des ausgewählten Landes sichtbar. Sie haben Ihr JavaScript zur besseren Kompatibilität in jQuery konvertiert, aber es treten immer noch einige Probleme auf.

Original-JavaScript

<code class="javascript">function populate(s1, s2) {
    var optionArray;
    switch (s1.value) {
        case "Germany":
            optionArray = ["|", "magdeburg|Magdeburg", "duesseldorf|Duesseldorf", "leinfelden-echterdingen|Leinfelden-Echterdingen", "eschborn|Eschborn"];
            break;
        // ... more cases
        default:
            optionArray = ["|"];
    }

    for (var option in optionArray) {
        var pair = optionArray[option].split("|");
        var newOption = document.createElement("option");
        newOption.value = pair[0];
        newOption.innerHTML = pair[1];
        s2.options.add(newOption);
    }
}</code>
Nach dem Login kopieren

jQuery-Lösung

Der folgende jQuery-Code erzielt das gewünschte Ergebnis:

<code class="javascript">jQuery(function($) {
    var locations = {
        'Germany': ['Duesseldorf', 'Leinfelden-Echterdingen', 'Eschborn'],
        'Spain': ['Barcelona'],
        'Hungary': ['Pecs'],
        'USA': ['Downers Grove'],
        'Mexico': ['Puebla'],
        'South Africa': ['Midrand'],
        'China': ['Beijing'],
        'Russia': ['St. Petersburg'],
    }

    var $locations = $('#location');
    $('#country').change(function () {
        var country = $(this).val(), lcns = locations[country] || [];

        var html = $.map(lcns, function(lcn){
            return `<option value="${lcn}">${lcn}</option>`
        }).join('');
        $locations.html(html)
    });
});</code>
Nach dem Login kopieren

So funktioniert es

Dieser Code speichert die Land-Stadt-Beziehungen im Standortobjekt. Wenn das Länder-Dropdown-Menü geändert wird, ruft der Änderungsereignishandler das ausgewählte Land ab und ruft die entsprechenden Städte aus dem Standortobjekt ab. Anschließend werden HTML-Optionen für die Städte erstellt und der Inhalt des Standort-Dropdowns ersetzt.

Das obige ist der detaillierte Inhalt vonWie füllt man kaskadierende Dropdown-Listen dynamisch mit jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage