簡體   English   中英

如何在Bootstrap SelectPicker中獲取數據ID?

[英]How get data-id in Bootstrap SelectPicker?

我是JS的初學者。 我有Bootstrap selectpicker。 我有以下代碼:

<select class="form-control selectpicker select_subcription" name="subscription">
  <optgroup label="Przedłuż wybrane profile o:">
    <option class="selectValueFromPriceList" value="1" data-id="1.00">Przedłużam wybrane profile o 7 dni za 1.00 zł / konto</option>
    <option class="selectValueFromPriceList" value="3" data-id="2.00">Przedłużam wybrane profile o 30 dni za 2.00 zł / konto</option>
    <option class="selectValueFromPriceList" value="5" data-id="4.00">Przedłużam wybrane profile o 90 dni za 4.00 zł / konto</option>
  </optgroup>
  <optgroup label="Promuj wybrane ogłoszenia:">
    <option class="selectValueFromPriceList" value="6" data-id="11.00">Wypromuj na liście ogłoszeń przez 7 dni za 11.00 zł / konto</option>
    <option class="selectValueFromPriceList" value="8" data-id="22.00">Wypromuj na liście ogłoszeń przez 30 dni za 22.00 zł / konto</option>
    <option class="selectValueFromPriceList" value="9" data-id="33.00">Wypromuj na liście ogłoszeń przez 60 dni za 33.00 zł / konto</option>
    <option class="selectValueFromPriceList" value="10" data-id="44.00">Wypromuj na liście ogłoszeń przez 90 dni za 44.00 zł / konto</option>
  </optgroup>
</select>
$('.select_subcription').selectpicker({
  noneSelectedText: 'Wybierz płatności z listy'
});

$('.select_subcription').on('changed.bs.select', function(e) {
  //alert(e.target.value);
  var summary = 0;
  var countCheckedCheckboxes = $checkboxes.filter(':checked').length;
  var price = e.target.value; // here i need data-id
  alert(price);
  summary = countCheckedCheckboxes * price;
  $('#count-checked-checkboxes').text(summary);
});

我需要:

var price = e.target.value;

未選擇數據ID選項-非值。

我該如何更改? 我要變化

var price = e.target.value; 

對於

var price = e.target.data-id

可是我不知道

您可以使用以下內容

var price = $(".select_subcription option:selected").attr('data-id');

首先, e.target將與select而不是所option ,因此即使調用獲取數據成功,它也不會返回任何內容。 您需要首先獲取選定的選項。

從那里,您可以使用jQuery的data()方法獲取值或本機dataset屬性,如下所示:

$('.select_subcription').on('changed.bs.select', function(e) {
  var summary = 0;
  var countCheckedCheckboxes = $checkboxes.filter(':checked').length;
  var price = $(this).find('option:selected').data('id');
  console.log(price);

  summary = countCheckedCheckboxes * price;
  $('#count-checked-checkboxes').text(summary);
});

 $( ".select_subcription" ).change(function(e) { //other code snippet console.log(e.target.value); console.log($(".select_subcription option:selected").attr('data-id')); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select class="form-control selectpicker select_subcription" name="subscription"> <optgroup label="Przedłuż wybrane profile o:"> <option class="selectValueFromPriceList" value="1" data-id="1.00">Przedłużam wybrane profile o 7 dni za 1.00 zł / konto </option> <option class="selectValueFromPriceList" value="3" data-id="2.00">Przedłużam wybrane profile o 30 dni za 2.00 zł / konto </option> <option class="selectValueFromPriceList" value="5" data-id="4.00">Przedłużam wybrane profile o 90 dni za 4.00 zł / konto </option> </optgroup> <optgroup label="Promuj wybrane ogłoszenia:"> <option class="selectValueFromPriceList" value="6" data-id="11.00">Wypromuj na liście ogłoszeń przez 7 dni za 11.00 zł / konto </option> <option class="selectValueFromPriceList" value="8" data-id="22.00">Wypromuj na liście ogłoszeń przez 30 dni za 22.00 zł / konto </option> <option class="selectValueFromPriceList" value="9" data-id="33.00">Wypromuj na liście ogłoszeń przez 60 dni za 33.00 zł / konto </option> <option class="selectValueFromPriceList" value="10" data-id="44.00">Wypromuj na liście ogłoszeń przez 90 dni za 44.00 zł / konto </option> </optgroup> </select> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM