2016-07-21 7 views
3

selectタグでselect2を使用しています。ユーザーが選択したオプションを変更したときにいくつか追加されます。たとえば、data-priceと設定した属性を利用しています。 Select2は、valueを除く<option>タグからすべての属性をストライピングしているようです。Select2はすべての属性を削除します<option>

この動作を無効にするにはどうしたらよいですか、データ値を取得する方法を教えてください。

編集:私もソナタの管理者を使用していることを追加するのを忘れました。ソナタはデフォルトでselect2をロードしています。

答えて

0

SELECT2が私のoption要素が交換されていたように、リモートデータを使用するように設定されたが判明しました。私はAJAXコールバック関数で自分のデータ属性を設定しましたが、今はすべて動作します。

0

Selectセレクトが本当に真の値ではなく

以外のタグからあなたがちょうどそれらを取得する必要がまだそこ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

私もソナタを使っていると付け加えて忘れました... – ecc

関連する問題