2016-07-21 8 views
3

Я использую select2 в своем теге select, есть некоторые дополнительные, когда пользователь изменяет выбранную опцию. и он использует атрибуты, которые я установил, например, как data-price. Select2, кажется, разделяет все атрибуты с тегов <option>, за исключением value.Select2 strips все атрибуты от <option>

Как отключить это поведение или как я могу получить значения данных другим способом?

Редактировать: Я забыл добавить, что я также использую администратор Sonata. Соната - это одна загрузка select2 по умолчанию.

ответ

0

Оказывается Выбор2 был установлен, чтобы использовать удаленные данные, так что мои option элементы были заменены. Я установил атрибуты данных в функции обратного вызова AJAX, и теперь все работает.

0

Выбор2, кажется, удаляющим все атрибуты из тегов для значения кроме

Не совсем верно в data-* атрибутах еще там у вас есть только, чтобы получить их:

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

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

Надеется, что это помогает.

$("#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

В вашем примере атрибуты данных сохраняются в HTML. Это не происходит в моем случае. Возможно, что-то другое является причиной, а не select2, но ваш пример отлично работает, а мой нет. – ecc

+0

Я забыл добавить, что я тоже пользуюсь Sonata ... – ecc