Chosen: Установить выбранное значение с помощью javascript

Созданный на 21 июл. 2011  ·  25Комментарии  ·  Источник: harvesthq/chosen

Установка выбранного значения с помощью javascript не работает. Я знаю, что selected() добавляет класс single_examplechzn_o_0 в <li> , который не имеет ничего общего со значением опции, и что #single_example больше не существует после selected(). Есть ли способ, которым это может работать?

Это работает:
```


$("#single_example").val(2);

``````

Это не работает:
```
``````

$("#single_example").val(2);

Самый полезный комментарий

Спасибо @stof , это помогло.

Просто для справки, динамическое изменение значения с помощью jQuery:

$("#single_example").val(2).trigger('chosen:updated');

Все 25 Комментарий

Попробуйте мою ветку (https://github.com/tompaton/chosen), она может исправить это для вас.

К сожалению, это не работает для меня.

Вам нужно вручную инициировать событие изменения (насколько я знаю, это невозможно обойти, что раздражает...):

$("#single_example").val(2).trigger("change");

Спасибо, это работает отлично!

Я сделал пример, который вам показывают с ошибкой, но когда я делаю $("#single_example").val(2).trigger("change");
, у меня нет никаких изменений в списке (выбранное значение).
Я использую последнюю версию плагина.
Приветствует

Вам нужно будет использовать https://github.com/tompaton/chosen , он не был объединен с веткой урожаяhq.

Да, это работает как шарм после использования ветки томпатона.

$("#single_example1").val(2);
$("#single_example2").val(3)
...
$("#single_example3").val(20);
$('.chosen').trigger('change');

Привет, ребята, я скачал форк tompaton (https://github.com/tompaton/chosen). Я сделал:
$("#single_example").val(2).trigger("change");
Это работает как шарм
Спс за совет :-)

Я пытаюсь написать функцию очистки всех, и это, похоже, не работает, даже с использованием ветки tompaton:
$(".state_list").val("").trigger("change");

У меня есть пустой вариант:
```

Is there a way to totally remove all selections? Also how about selecting all?

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

Пт, 12 августа 2011 г., 1:50, MB34
ответ@reply.github.com
написал:

Я пытаюсь написать функцию очистки всех, и это, похоже, не работает, даже с использованием ветки tompaton:
$(".state_list").val("").trigger("change");

У меня есть пустой вариант:

Есть ли способ полностью удалить все выделения? Также как насчет выбора всех?

Ответьте на это письмо напрямую или просмотрите его на GitHub:
https://github.com/harvesthq/chosen/issues/31#issuecomment-1782941

Так есть ли способ сделать это без исправления плагина?

Итак, очистка всех вариантов из множественного выбора возможна без исправления, если вы хотите заблокировать себя в том, как работает внутренность выбранного:

// replace {select_id} below with the id of your <select> tag
$('#{select_id}_chzn .chzn-choices .search-choice a').click();

Это будет имитировать нажатие кнопки удаления «x» на каждом выбранном элементе в множественном выборе.

Также возможен выбор всех параметров (путем имитации выбора всех доступных параметров в раскрывающемся списке):

$('#{select_id}_chzn .chzn-drop li').click();

Они действительно должны быть добавлены как методы к выбранному плагину.

Хорошо, чтобы прояснить все это:

@pfiller указал, что все это возможно в ветке урожая/выбранного, используя:

$("#single_example").val(2).trigger("liszt:updated");

Плохо, что недостаточно внимательно прочитал код/документацию. Это будет работать правильно и для нескольких полей выбора.

Очистка всех параметров из множественного выбора может быть выполнена с помощью:

$('#{select_id}').val([]).trigger('liszt:updated');

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

_Обратите внимание_, что моя вилка теперь такая же, как и yieldhq/chosen в отношении этого, так что просто используйте ее и игнорируйте .trigger('change') .

Для тех из вас, кто может использовать адаптер Prototype, вы можете сделать то же самое следующим образом:

  $(select_box_id).select('option[selected]').each(function(el){el.selected = false});
  Event.fire($(select_box_id), 'liszt:updated')

Немного коряво, но работает. Если есть лучший способ сделать это, Лемми знает

Решение, которое я использую, состоит в том, чтобы изменить выбранный параметр в исходном исходном выборе, а затем перестроить Chosen.

select.val(value);
select.chosen('destroy');
select.chosen({});

@roelvanduijnhoven решение, данное в комментарии @tompaton (или предоставленное @RyanS для версии Prototype), лучше, поскольку оно обновляет существующий выбранный элемент, а не уничтожает его и создает новый

По какой-то причине решение @tompaton в моем случае не сработало. Но особо не старался, может что-то не так сделал.

@roelvanduijnhoven Если вы используете версию 1.0, событие теперь chosen:updated

Спасибо @stof , это помогло.

Просто для справки, динамическое изменение значения с помощью jQuery:

$("#single_example").val(2).trigger('chosen:updated');

И для справки это задокументировано: http://harvesthq.github.io/chosen/#change -update-events

Извините, @roelvanduijnhoven , мой комментарий предназначался для другой проблемы, теперь я его удалил. (gmail сгруппировал электронные письма, и я отправил комментарий, ответив)

Большое спасибо! Эта тема спасла мой день!
Наконец-то у меня есть множественный выбор со значениями по умолчанию :)

Привет, я новичок в jquery и только что скачал файл selected. Я немного смущен тем, как установить/получить несколько значений в выбранном.

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

Спасибо
Гури

gpdhillion:
использовать этот
$('.chosen-select').val([1,2,3]).trigger('chosen:updated');

$("#id").val(id_value);
$("#id").chosen('уничтожить');
$("#id").выбран({});

Была ли эта страница полезной?
0 / 5 - 0 рейтинги