У меня есть один флажок с вариантами, и я использую jQuery «Chosen» в Zend View. Этот плагин работает нормально.
Javascript: $('#select_type').chosen();
Моя проблема в том, что мне нужно выбрать один из параметров при загрузке страницы в зависимости от того, что такое значение типа_ид. Я попробовал это:
document.getElementById('select_type').value = '<?=$this->type_id?>';
Это изменяет его значение, но опция не выбрана в выбранном JQuery.
Есть идеи?
EDIT: опция успешно изменяется, выполняя то, что я упомянул выше, но не обновляет / не изменяет выбранный элемент в jQuery «выбранном» плагине. Мой вопрос заключается в обновлении выбранного значения для jQuery Chosen, а не HTML SELECT (который я сделал успешно). Вот ссылка на плагин jQuery Chosen
После запуска:
document.getElementById('select_type').value = '<?=$this->type_id?>';
Вы должны позвонить:
$('#select_type').trigger('chosen:updated');
Взято из избранной документации :
Обновление, выбранное динамически
Если вам нужно обновить параметры в своем поле выбора и хотите, чтобы Chosen забирал изменения, вам нужно вызвать событие «selected: updated» в поле. Выбранный будет перестраиваться на основе обновленного контента.
$("#form_field").trigger("chosen:updated");
См. Журнал изменений для объявления об этом изменении API.
Вы должны позвонить:
$('#select_type').trigger('liszt:updated');
Взято из избранной документации :
Обновление, выбранное динамически
Если вам нужно обновить параметры в своем поле выбора и хотите, чтобы Chosen забирал изменения, вам нужно вызвать событие «liszt: updated» в поле. Выбранный будет перестраиваться на основе обновленного контента.
- jQuery Версия :
$("#form_field").trigger("liszt:updated");
- Версия прототипа :
Event.fire($("form_field"), "liszt:updated");
Вместо того, чтобы делать это из JS, почему бы вам просто не установить выбранную опцию в HTML до вызова Chosen плагина с JavaScript? Вы устанавливаете значение из части PHP, поэтому я не понимаю, почему это невозможно.
Вы можете просто установить правильные элементы с выбранным атрибутом так:
<select name="teams[]" data-placeholder="Chose an option:" class="chzn-select" multiple tabindex="6"> <option value=""></option> <option selected="selected">Dallas Cowboys</option> <option selected="selected">New York Giants</option> <option>Philadelphia Eagles</option> <option>Washington Redskins</option> </select>
Выбранный будет заботиться о том, чтобы инициализировать себя и показать два заранее выбранных варианта.
Попробуй это:
$("#select_type").val(<?=$this->type_id?>).trigger('change'); $('#select_type').trigger('liszt:updated');
Попробуй это:
$('#select_type').val('<?=$this->type_id;?>'); // Select the value before .chosen(); $('#select_type').chosen();
$('#select_type').val('<?=$this->type_id?>');
попробуй