2016-03-11 3 views
1

Я начинаю использовать Select2 для замены выпадающих списков в своем приложении. Мой вопрос заключается в том, как адаптировать то, что работает сейчас.Значение настройки Select2 без отправки формы

У меня есть страница с компонентом fullcalendar и 3 раскрывающимися списками, чтобы выбрать календарь, который я хочу отобразить. После того, как выпадающий используется, другой 2 сбрасывается как это (я использую JQuery):

$('#dropdown1').prop('selectedIndex',0) 

Основное преимущество этого состоит в том, что форма представляется только по «измененной» выпадающего списка (каждый выпадающий имеет свои собственные событие изменения, которое было выполнено для сброса остальных).

Использование ВЫБ.2, если я использую это, событие изменение сбрасывается выпадающего меню запуска:

$('#dropdown1').select2('val','') 

Таким образом, все события изменения будут запущены.

Есть ли решение установить значение выпадающего меню select2 без запуска события изменения?

Спасибо

+0

Вы уверены, что с '$ ('# dropdown1'). Select2 ('val', '')' запускает событие изменения –

+0

Какую версию вы используете? – Jack

+0

Я использую django-select2, который использует v4.0.0. –

ответ

0

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

Отрывок из документации

$('select').val('US'); // Change the value or make some change to the internal state 
$('select').trigger('change.select2'); // Notify only Select2 of changes 

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

+0

Проблема решена, я использовал ваш ответ, но мне нужно было вызвать change.select2. Я объясняю себя: $ ('select'). Val ('US'); ==> установить только новое значение для начального раскрывающегося списка $ ('select'). trigger ('change.select2'); ==> вызывает изменение только для select2, чтобы изменить значение выпадающего списка select2. Он НЕ запускает событие изменения на всю страницу (поэтому, если у вас есть, как и я, «событие обмена», это не вызовет его) Спасибо! –