Установить значение тега на select2

У меня есть поле выбора на моей странице:

<label>
    <span>Select name</span>
    <select name="name">
        <option value="Option1">Option 1</option>
        <option value="Option2">Option 2</option>
    </select>
</label>

И я инициализировал select2 lib для этого поля:

$("[name='name']").select2({
    allowClear: true,
    tags: true
});

Как видите, мне нужно использовать теги, потому что пользователь может написать вариант, не включенный в предложенный.

И это работает.

Когда я хочу установить значение пользователя по умолчанию, я использую эту команду:

$("[name='name']").val(Option1).trigger("change");

И это работает, если значение является одним из значений параметров выбора. Но если я хочу установить другое значение, тег не устанавливается.

$("[name='name']").val(Option3).trigger("change");

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


person Anastasiia    schedule 04.08.2016    source источник
comment
пожалуйста, создайте скрипку или любую демонстрацию для этого   -  person Niklesh Raut    schedule 04.08.2016


Ответы (1)


ок, я нашел ответ! Если у нас нет опции со значением тега, мы просто делаем что-то вроде этого:

var tagValue = [{id: Option3, text: Option3}];

$("[name='name']").select2({
    allowClear: true,
    tags: true,
    data: tagValue
});

$("[name='name']").val(tagValue).trigger('change');

Итак, первая часть этого кода создает дополнительную опцию в нашем выборе, и после этого мы можем использовать ее как значение для ее установки.

person Anastasiia    schedule 08.08.2016
comment
Удалось ли вам использовать это для установки нескольких тегов? Если да, то не могли бы вы привести пример? Также вы можете принять свой ответ - person ganeshk; 25.09.2017