2015-02-12 3 views
1

Я использую Selectize API и борюсь за определение того, как получить индекс/позицию текущего выбранного элемента.Получить текущий индекс выбора при выделении api dropdown

Я просмотрел API и нашел getValue(), чтобы получить значение выбранного элемента, но мне нужен индекс. Я также исследовал сам параметр .selectize, но не могу найти никаких атрибутов, которые его хранят?

ответ

3

Используя API, вы можете использовать:

var selectize = $('#ddowhat').selectize()[0].selectize; 

var val = selectize.getValue(); 
var tag = selectize.getItem(selectize.getValue()); 
var text = tag.text(); 

Если у вас есть несколько вариантов, тег будет массивом.

0

Я пошел об этом немного по-другому - после поиска и не найдя ответа.

Я использовал jQuery, чтобы получить все варианты на странице. Затем я зацикливал каждую (так что я мог изменять значения css для каждого элемента отдельно).

  1. var htmlSelects = $ ('select');
  2. htmlSelects.each (функция (я) {....}
  3. Я получил родителя выбора объекта ДО Я selectized его: вар parentDIV = $ (это) .closest ('DIV ') .prop (' id ');
  4. Затем я «выделил» объект выбора (захватив z-индекс оригинала, чтобы я мог его изменить в раскрывающемся списке и вернуться к закрытию) var $ select = _input.selectize ({ options: [{create: true, sortField: 'text' }], onDr opdownOpen: function() { var cssZIndex = $ ('#' + parentDIV) .css ('zIndex'); $ ('#' + parentDIV) .attr ('cssZIndex', cssZIndex); $ ('#' + parentDIV) .css ('zIndex', '1000'); }, onDropdownClose: function() { $ ('#' + parentDIV) .css ('zIndex', $ ('#' + parentDIV) .attr ('cssZIndex')); } });
  5. Я использовал "частичное совпадение класса" и parentDIV получить selectized раскрывающегося объекта: уага Эль = $ ("[класс^= 'selectize-выпадающий список']", "#" + parentDIV) [0 ];
  6. Я создал действие события щелчка для выбранного выбора, который позволил мне получить атрибут textContent объекта (который содержит ВСЕ опции «для выбора» (разделенные символом новой строки) $ (elem) .он ('щелчок', '.selectize-выпадающий содержанием DIV', функция() {

    //GET THE textContent OPTION LIST VALUE, 
    //REPLACE THE NEWLINES OR RETURNS WITH A PIPE 
    var optionString = $(elem)[0].textContent.replace(/[\n\r]/g, '|'); 
    
    //CREATE AN ARRAY OF OPTIONS VALUES 
    var optionArray = optionString.split('|'); 
    
    //GET THE TEXT VALUE OF THE OPTION CLICKED ON 
    //(AGAIN REPLACE THE NEWLINES OR RETURNS WITH AN EMPTY STRING 
    var optionText = $(this).text().replace(/[\n\r]/g, ''); 
    
    //GET THE INDEX OF THE SELECTED OPTION TEXT VALUE 
    //IN THE OPTIONS LIST ARRAY 
    var optionIndex = $.inArray(optionText, optionArray); 
    })