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
приписывать.