2016-07-21 21 views
3

Ich verwende Select2 auf meinem select Tag, Es gibt einige zusätzliche, wenn der Benutzer die ausgewählte Option ändert. und es verwendet Attribute, die ich zum Beispiel als data-price eingestellt habe. Select2 scheint alle Attribute aus den <option> Tags mit Ausnahme der value zu strippen.Select2 streift alle Attribute von <option>

Wie kann ich dieses Verhalten deaktivieren oder wie kann ich die Datenwerte auf andere Weise erhalten?

Edit: Ich habe vergessen hinzuzufügen, dass ich auch Sonata admin benutze. Sonata lädt standardmäßig select2.

Antwort

0

Es stellte sich heraus select2 entfernte Daten zu verwenden, wurde so eingestellt, dass meine option Elemente ersetzt wurden. Ich habe meine Datenattribute in der AJAX-Callback-Funktion eingestellt und jetzt funktioniert alles.

0

Select2 scheint immer noch da aus den Tags, außer für den Wert

nicht wirklich wahr, die data-* Attribute Striping alle Attribute werden müssen Sie nur noch um sie zu erhalten:

$("#singleSelectExample").select2(); 

$('body').on('change', '#singleSelectExample', function(){ 
    console.log($('#singleSelectExample option:selected').data('price')); 
}) 

Hope this hilft.

$("#singleSelectExample").select2(); 
 

 
$('body').on('change', '#singleSelectExample', function(){ 
 
    console.log($('#singleSelectExample option:selected').data('price')); 
 
})
.selectRow { 
 
    display : block; 
 
    padding : 20px; 
 
} 
 
.select2-container { 
 
    width: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://select2.github.io/select2/select2-3.5.1/select2.js"></script> 
 
<link href="https://select2.github.io/select2/select2-3.5.1/select2.css" rel="stylesheet"/> 
 
<div class="selectRow"> 
 
    <select id="singleSelectExample"> 
 
    <option></option> 
 
    <option value="1" data-price="111">Option 1</option> 
 
    <option value="2" data-price="222">Option 2</option> 
 
    <option value="3" data-price="333">Option 3</option> 
 
    </select> 
 
</div>

+0

In Ihrem Beispiel sind die Datenattribute im HTML erhalten. In meinem Fall passiert das nicht. Vielleicht ist etwas anderes die Ursache und nicht select2, aber Ihr Beispiel funktioniert gut, während meins nicht funktioniert. – ecc

+0

Ich habe vergessen hinzuzufügen, dass ich auch Sonata benutze ... – ecc