2015-12-25 9 views
10

wie kann ich Wert von nicht ausgewählter Option erhalte in Select2select2:unselectWie Wert von select2 erhalten: unselect

$('#mySelect').on("select2:unselect", function(e){ 

    var unselected_value = $('#mySelect').val(); // using this shows 'null' 
    // or using below expression also shows 'null' 
    var unselected_value = $('#mySelect :selected').val(); 

    alert(unselected_value); 
}).trigger('change'); 

in obigem Code Alarm zeigt 'null'

ich select2:unselect weil ‚Wechsel verwenden muß mit 'Ereignis wird :select und :unselect beide spüren.

+1

kann https://github.com/select2/select2/issues/2959 –

+0

nicht helfen, das nicht der Fall Ereignis ausgelöst wird, aber ich bin nicht in der Lage, den Wert der nicht ausgewählten Option zu holen. @ Mohamed-Yousef trotzdem danke. –

Antwort

4

Schließlich habe ich die Lösung und das ist: Der Wert der nicht ausgewählten Option ist nur verfügbar, bevor es nicht ausgewählt ist. Gar nicht select2:unselect eher bei select2:unselecting nun der Code sein:

$('#mySelect').on("select2:unselecting", function(e){ 
     var unselected_value = $('#mySelect').val(); 
     alert(unselected_value); 
    }).trigger('change'); 
9

Eigentlich ist der Datenwert innerhalb des Ereignisobjekts. Es wäre nützlich, wenn Sie sich mit select2 mehreren Werten befassen.

function(e){ 
    console.log(e.params.data) 
} 
+1

"e.params.data.id" ist der "Wert" des ausgewählten/nicht ausgewählten Elements und "e.params.data.text" ist das Label "innerText". –

+0

Dies sollte die Antwort sein! –

2

Dies ist eine ältere Frage, aber vielleicht wird diese Antwort jemandem helfen. Ich benutze Select2 v4.0.3 mit mehreren Werten/Tags und brauche nur die ID eines bestimmten entfernt werden. Ich wollte das Ereignis unselecting, wie in anderen Antworten erwähnt, nicht verwenden. Im unselect Ereignisse gibt es kein args Objekt, so dass Sie auf die ID des einen bekommen können Sie wie folgt zu entfernen versuchen ...

jQuery('.mySelect2').on("select2:unselecting", function(e){ 
    return true; // I don't use this unselecting event but here is how you could use it to get the ID of the one you are trying to remove. 
    console.log(e); 
    console.log(e.params); 
    console.log(e.params.args.data); 
    console.log(e.params.args.data.id); 
    //console.log(e.params.args.data.tag); data.tag is specific to my code. 
}); 

jQuery('.mySelect2').on('select2:unselect', function (e) { 
    console.log(e); 
    console.log(e.params); 
    console.log(e.params.data); 
    console.log(e.params.data.id); 
    //console.log(e.params.data.tag); data.tag is specific to my code. 

    /* 
    Now you can do an ajax call or whatever you want for the specific 
    value/tag that you are trying to remove which is: e.params.data.id. 
    */ 
+0

Yeah Kumpel, ich hätte das mehr als einmal aufgegriffen, wenn ich könnte. – dps

0

den spezifischen Optionswert bekommen, wenn Sie mehrere Tags verwenden:

var unselected_value = $('#mySelect option:selected').val(); 
alert(unselected_value); 
0

Dies ist meine Lösung, um die Hintergrundfarbe einer Stadt in einer SVG-Karte für den Namen der jeweiligen Stadt auf der Suche zu ändern. Hoffe, das Sie

$(".js-example-diacritics").on("select2:unselect", function(evt) { 
       var element = evt.params.data.element; 
       townColor(element.text, unHighLightColor); 
      }); 

Zur Methode townColor helfen könnte() Ich bin das Bestehen der Text (Name der Stadt) des select2 Element nicht ausgewählt und benannte Konstante unHighLightColor, die den Namen der Farbe hält.

0

auf Select2 4.0.3 Ich wurde gefunden e.params wurde geändert. Also, id von Abwählen Artikel zu finden, ändern Sie den Code wie folgt aus:

$('select').on('select2:unselecting', function (e) { 
    var id = e.params.args.data.id; //your id 
    alert('Are You Sure ?'); 
    e.preventDefault(); 
    // Do something with your id 
}); 
0

Das nicht ausgewählte Element wird durch e.params.data vorbei. Wir können auf seinen Wert mit "ID" zugreifen und wenn Sie den Text benötigen, können Sie "data.text" verwenden.

$("select").on("select2:unselect", function (e) { 
      var value= e.params.data.id; 
      alert(value); 
    });