h:selectmanyListbox делает опцию "выбрать" недоступной, если выбран хотя бы один из них

Можно ли иметь в <h:selectManyListbox> параметр по умолчанию, такой как "--choose--", который можно выбрать, если не выбран ни один параметр. Когда выбрано какое-то значение, оно должно быть недоступным для выбора.

<h:selectManyListbox value="#{bean.value}"
        class="form-control">
        <f:selectItems value="#{bean.dropdownValues}" var="value" itemLabel="#{value}" itemValue="#{value}"/>            
</h:selectManyListbox>

1 ответ

Решение

Просто добавьте это как другое <f:selectItem> и попросить помощи немного JavaScript, чтобы отключить его, когда любое значение выбрано во время события изменения.

<h:selectManyListbox ... onchange="options[0].disabled=!!value">
    <f:selectItem itemLabel="--choose--" itemValue="#{null}" />
    <f:selectItems ... />
</h:selectManyListbox>

options[0] относится к первому варианту выбора элемента. !!value в основном преобразует значение выбранного элемента в boolean (которые будут true когда он не пустой / нулевой), подходит для disabled приписывать.

Смотрите также:

Другие вопросы по тегам