2014-12-13 2 views
2

Использование selectize.js стандартных множественного выбора возвращает массив строк: ["1","2","3"] это прекрасно работает со следующим кодом:Selectize.js с Rails и удаленной загрузки данных - возвращающиеся разделенных запятыми вместо массива

$('.selectize').selectize();

Я хочу использовать удаленную загрузку данных из-за большого объема данных, но при настройке выбора по этому пути я возвращаюсь ["1,2,3"] вместо желаемого ["1","2","3"].

Вот код:

var formatName = function(item) { 
    return $.trim((item.first_name || '') + ' ' + (item.last_name || '')); 
}; 

$('.selectize-contacts').selectize({ 
    delimiter: ',', 
    valueField: 'id', 
    labelField: 'name', 
    searchField: ['first_name', 'last_name', 'email'], 
    sortField: [ 
     {field: 'first_name', direction: 'asc'}, 
     {field: 'last_name', direction: 'asc'} 
    ], 
    options: [], 
    create: false, 
    render: { 
     item: function(item, escape) { 
      var name = formatName(item); 
      debugger; 
      return '<div>' + (name ? '<span class="name">' + escape(name) + '</span>' : '') + '</div>'; 

     }, 
     option: function(item, escape) { 
      var name = formatName(item); 
      return '<div>' + escape(name) + '</div>'; 
     } 
    }, 
    load: function(query, callback) { 
     if (!query.length) return callback(); 
     $.ajax({ 
      url: $(".selectize-contacts").data("search") + '?q=' + query, 
      type: 'GET', 
      error: function() { 
       callback(); 
      }, 
      success: function(data) { 
       callback(data); 
      } 
     }); 
    }, 

}); 

Любые советы о том, почему эти значения различны были бы оценены.

ответ

0

Просмотрев код. Выбирайте проверки, если он был инициализирован из мультиселекта только тогда, когда он возвращает элементы, иначе он присоединяет элементы к строке. Вы все равно можете получить элементы с помощью selectize.items вместо selectize.getValue()