Получить текущее значение в bootstrap-select

Я e.target.value чтобы получить текущее выбранное значение из bootstrap-выберите, но он вернул первое выбранное значение, т. е. предупреждение продолжало отображать элемент 1, когда элемент 1 и элемент 2, где выбран, даже если элемент 2 был выбран последним.

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

   <select multiple class="selectpicker" multiple data-selected-text-format="count > 1">
    <option value="item 1">Item 1</option>
    <option value="item 2">Item 2</option>
    <option value="item 3">Item 3</option>
    <option value="item 4">Item 4</option>
    <option value="item 5">Item 5</option>

$('.selectpicker').change(function (e) {
    alert(e.target.value);
});

6 ответов


Я думаю, что ответ может быть проще понять так:

$('#empid').on('click',function() {
  alert($(this).val());
  console.log($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<select id="empid" name="empname" multiple="multiple">
  <option value="0">item0</option>
  <option value="1">item1</option>
  <option value="2">item2</option>
  <option value="3">item3</option>
  <option value="4">item4</option>
</select>
<br />
Hold CTRL / CMD for selecting multiple fields

Если вы выберете "item1" и "item2"в списке, выход будет "1,2".


вместо Эл.цель.значение, вы можете использовать $(этот).найти ("option: selected").text();

$('.selectpicker').change(function () {
var slecteditem= $(this).find("option:selected").val();    
alert(slecteditem);

<select multiple class="selectpicker" multiple data-selected-text-format="count > 1">
   <option value="item 1">Item 1</option>
   <option value="item 2">Item 2</option>
   <option value="item 3">Item 3</option>
   <option value="item 4">Item 4</option>
   <option value="item 5">Item 5</option>
</select>

$('.selectpicker').on('change', function(){
    var selected = []
    selected = $('.selectpicker').val()
    console.log(selected); //Get the multiple values selected in an array
    console.log(selected.length); //Length of the array
});

по данным этот пост, вы должны сделать что-то вроде :

$('.selectpicker').on('changed.bs.select', function (e) {
    var selected = e.target.value;
});

Это решение:

$('#payment_method').on('hidden.bs.select', function (e) {
  // console.log(e.target.value);

  console.log(e.target.selectedOptions.length);

$.each( e.target.selectedOptions , function( index, obj ){
    console.log(obj.value);
});

});

вы получаете длину выборки, поэтому может быть полезно в for loop

console.log(e.target.selectedOptions.length);

и вы также можете перебирать выбранные значения:

$.each( e.target.selectedOptions , function( index, obj ){
    console.log(obj.value);
});

вот как я получаю значение выбранного элемента из списка выбора:

var e = document.getElementById("field_ID");  
var selected_value = e.options[e.selectedIndex].value;