Sogar diese Frage ist seit einer Weile hier und wahrscheinlich überwunden, ich hatte die gleichen Zweifel und ich denke, ich sollte teilen, was ich habe.
@Spokey Antwort ist sehr gut und funktioniert. Es funktioniert jedoch nur, wenn Sie eine einfache Auswahl treffen. Wenn Sie eine Mehrfachauswahlbox erstellen möchten, wird die Sache etwas schwieriger, da Select2 kein eindeutiges Attribut zur Verfügung stellt, um die einzelnen Optionen einfach zu finden.
Lesen @HyperLink Antwort, änderte ich die Art zu denken und endlich ein funktionierendes Ergebnis. Es wäre etwas schwierig, wenn Sie wirklich nur den Wert überschreiten möchten, den ich Ihnen gezeigt habe. Ich habe ein paar Stunden damit verschwendet, das zu versuchen. Aber einen neuen Ansatz, wie diese hat, lässt sich viel einfacher:
<select name="convert-to" id="convert-to" multiple>
<option value="AUD">AUD - Australian Dollar</option>
<option value="USD">USD - US Dollar</option>
<option value="JPY">JPY - Japanese Yen</option>
<option value="EUR">EUR - Euro</option>
<option value="GBP">GBP - British Pound</option>
<option value="CAD">CAD - Canadian Dollar</option>
<option value="HKD">HKD - Hong Kong Dollar</option>
</select>
Gerade hinzugefügt, was den Wert auf dem realen Text ist, die wahrscheinlich keinen großen Unterschied für den Benutzer machen, aber für uns, wird es helfen, ein Menge. Der wesentliche Unterschied der anderen Antwort JavaScript aktivieren, ist die change(function(){})
:
change(function() {
var options = $('.select2-search-choice > div');
i = 1;
Array.prototype.forEach.call(options, function(o) {
o.id = 'choice'+i; // optional, creating ids to
i++; // find it easily if you want
aux = o.textContent.split(" - "); // Divide value from text
o.textContent = aux[0]; // Get first part, i.e, value
console.log(aux);
})
Try it here