Как заполнить select2 пользовательским вводом - PullRequest
0 голосов
/ 26 февраля 2019

Я реализовал выпадающий список select2, который позволяет пользователю вводить пользовательский ввод ...

$("#select").select2({
  createSearchChoice:function(term, data) {
    if ($(data).filter(function() {
      return this.text.localeCompare(term)===0;
    }).length===0)
    {return {id:term, text:term};}
  },
  multiple: false,
  selectOnBlur: true,
  data: [{id: 1, text: '1'}, {id: 2, text: '2'}, {id: 3, text: '3'}]
});

Это работает нормально, но есть сценарий, когда мне нужно программно установить пользовательское значение длявыпадающий список select2.Я попытался сделать следующее ...

// Doesn't work
$('#select').val('val', custom);

// Doesn't work
$('#select').val(custom);

Есть ли способ сделать это?

Работает Скрипка моего выпадающего списка.

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

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

$('#select').val(custom).change();
0 голосов
/ 26 февраля 2019

Я узнал, как выполнить то, что я хочу.Решение было ...

$('#select').select2('data', {id: id, text: custom});

Следующее установит вход как любое значение custom без добавления в сам список.

Вот рабочая скрипка .

0 голосов
/ 26 февраля 2019

Хотите показать выбранное значение?если это так, вы можете добавить

$('#select').val(custom).attr("selected", "selected").change();
...