2015-12-09 2 views
2

Я использую select2 для множественного выбора. В настоящее время это в моем HTML файл:Select2 автоматически добавляет пустое значение

<%= form.select "page_request_set_ids", @multiautocomplete_set_options.unshift(""), 
{}, id: "page-request-sets", multiple: true, 
allowClear: true, data: {placeholder: "Start typing sets..."} %> 

@multiautocomplete_set_options является массивом строк. Когда я перейду к доступу :page_request_set_ids позже, строки, которые я набрал, есть вместе с пустой строкой.

Я попытался удалить unshift(""), который сохранил мой заполнитель, но не удалил проблему пустой строки в :page_request_set_ids.

Любые идеи?

ответ

0

непосредственно взяты из selectdocumentation:

Попался

Спецификация HTML говорит при передаче множественным параметр для выбора и все варианты получили отменен веб-браузеры не посылать никакого значения на сервер. К сожалению, это вводит getcha: если модель пользователя имеет много ролей и имеет access_id accessor, а в форме, которая редактирует роли пользователя, пользователь отменяет выбор всех ролей из множественного окна выбора role_ids, ни один параметр role_ids не отправляется. Таким образом, любая ипостась с массовым назначением, такая как

@user.update(params[:user]) 

не обновлял роли.

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

Примечание: Клиент либо отправляет только скрытое поле (представляющее собой поле выбора без выбора), либо оба поля. Это означает, что результирующий массив всегда содержит пустую строку.

Если вы не хотите, чтобы хелпер создавал это скрытое поле, вы можете указать опцию include_hidden: false.

Так Суть заключается в том, чтобы добавить:

include_hidden: false

0

Для меня этот вопрос я не прошел «многократный: истинный» вариант к select_tag в моем ERB/​​Haml, и только установить опция в select2 при инициализации.

Убедитесь, что у вас есть опция в обоих местах.

Смежные вопросы