it-swarm.com.de

Löst eine Aktion nach Auswahl von select2 aus

Ich verwende select2 library für meine Suche.
Gibt es eine Möglichkeit, eine Aktion auszulösen, nachdem Sie ein Suchergebnis ausgewählt haben? z.B. Öffnen Sie ein Popup oder eine einfache Js-Warnung. 

$("#e6").select2({
    placeholder: "Enter an item id please",
    minimumInputLength: 1,
    ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
        url: "index.php?r=sia/searchresults",
        dataType: 'jsonp',
        quietMillis: 3000,
        data: function (term, page) {
        return {
            q: term, // search term
            page_limit: 10,
            id: 10
            };
        },
        results: function (data, page) { // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to alter remote JSON data
            return {results: data};
        },
    },

    formatResult: movieFormatResult, // omitted for brevity, see the source of this page
    formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page
    dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
    escapeMarkup: function (m) { return m; } // we do not want to escape markup since we are displaying html in results
});
59
spyfx

Siehe den Abschnitt Dokumentationsereignisse

Abhängig von der Version sollte einer der folgenden Abschnitte Ihnen das gewünschte Ereignis liefern. Alternativ können Sie "select2-select" durch "change" ersetzen.

Version 4.0 +

Ereignisse haben jetzt das Format: select2:selecting (anstelle von select2-selecting)

Danke an snakey für die Benachrichtigung, dass sich dies seit 4.0 geändert hat

$('#yourselect').on("select2:selecting", function(e) { 
   // what you would like to happen
});

Version vor 4.0

$('#yourselect').on("select2-selecting", function(e) { 
   // what you would like to happen
});

Zur Verdeutlichung heißt es in der Dokumentation zu select2-selecting:

select2-select Wird ausgelöst, wenn in .__ eine Auswahl getroffen wird. Dropdown, aber bevor eine Änderung an der Auswahl vorgenommen wurde . Mit diesem Ereignis kann der Benutzer die Auswahl durch Aufrufen von .__ ablehnen. event.preventDefault ()

in der Erwägung, dass der Wandel

veränderung Wird ausgelöst, wenn die Auswahl geändert wird.

Abhängig davon, ob Sie die Auswahl abschließen und dann Ihr Ereignis durchführen oder die Änderung möglicherweise blockieren möchten, ist change möglicherweise für Ihre Anforderungen geeigneter.

138
Ross

Es wurden einige Änderungen an den select2-Ereignissenamen vorgenommen (ich denke in Version 4 und höher), so dass '-' in ':' geändert wird.
Siehe die nächsten Beispiele:

$('#select').on("select2:select", function(e) { 
    //Do stuff
});

Sie können alle Ereignisse auf der Plugin-Site 'select2' überprüfen: select2 Events

16
Tarek

Für mich geht das:

$('#yourselect').on("change", function(e) { 
   // what you would like to happen
});
8
Roby Sottini

Wie in meiner oben genannten Version v.4 wird dies funktionieren

$('#selectID').on("select2:select", function(e) { 
    //var value = e.params.data;  Using {id,text format}
});

Und für weniger als v.4 funktioniert das:

$('#selectID').on("change", function(e) { 
   //var value = e.params.data; Using {id,text} format
});
0
amku91

Für über v4

$('#yourselect').on("select2:select", function(e) { 
     // after selection of select2 
});
0
SHUJAT MUNAWAR