как получить выбранную опцию в селекторе начальной загрузки?

$('.excludeDaysPicker').selectpicker();

У меня есть средство выбора начальной загрузки с включенной опцией «множественный выбор».

<select class="excludeDaysPicker" multiple title="Not Selected">
<option value="Monday" id="1" class="excludeDays">Monday</option>
<option value="Tuesday" id="2" class="excludeDays">Tuesday</option>
<option value="Wednesday" id="3" class="excludeDays">Wednesday</option>
<option value="Thursday" id="4" class="excludeDays">Thursday</option>
<option value="Friday" id="5" class="excludeDays">Friday</option>
<option value="Saturday" id="6" class="excludeDays">Saturday</option>
<option value="Sunday" id="7" class="excludeDays">Sunday</option>
</select>

после нажатия на опцию выбора (выбор или отмена выбора) я хочу знать, какая опция нажата.

Я пытался.

$('.excludeDaysPicker').on('change',function(){
console.log("id::",$(this).children(':selected').attr('id'));
});

Это на самом деле дает мне идентификатор. Но так как это множественный выбор с включенным selectpicker. если уже выбран вариант. идентификатор этой опции возвращается. например, на скриншоте ниже

введите здесь описание изображения

если я нажимаю на среду, он дает мне идентификатор 2 (потому что выбран вторник), но на самом деле идентификатор среды равен 3. Мне нужен идентификатор элемента опции, на который я нажимаю.

А также я не смог получить элемент option, предоставив элементу option класс, потому что плагин selectpicker начальной загрузки создает список для всех элементов option, как вы можете видеть ниже.

введите здесь описание изображения

so,

 $('.excludeDays').click(function()
 {
  console.log("excluded day optionselected::",$(this).attr('id'));  
 });

тоже не помогает.

Есть ли обходной путь, ребята?


person Karthik Amar    schedule 06.11.2015    source источник


Ответы (1)


Чтобы получить соответствующие идентификаторы выбранных параметров:

$('.excludeDaysPicker').on('change',function(){
    $(this).find("option:selected").each(function()
    {
        alert($(this).attr("id"));
    });
});

ОБНОВЛЕНИЕ. Чтобы получить последнее выбранное значение, нажмите все выбранные значения в массиве и получите идентификатор последнего элемента.

    var arr = new Array();
$('.selectpicker').on('change', function(){
     $(this).find("option").each(function()
     {
         if($(this).is(":selected"))
         {             
            id = $(this).attr("id");
            if(arr.indexOf(id) == -1)
            {
               arr.push(id);
            }
         }
         else
         {
             id = $(this).attr("id");
             arr = jQuery.grep(arr, function(value) {
              return value != id;
            });             
         }
     });

if(arr.length > 0)
    alert("Last selected id : " + arr[arr.length-1]);

  });

http://jsfiddle.net/wd1z0zmg/3/

person DinoMyte    schedule 06.11.2015
comment
привет дино. Но мне нужны не все выбранные параметры, а тот, который в данный момент выбирается. - person Karthik Amar; 06.11.2015
comment
Пожалуйста, обратитесь к разделу ОБНОВЛЕНИЕ - person DinoMyte; 06.11.2015