Отключить кнопку с JSF, когда проверка ввода мешает - PullRequest
0 голосов
/ 04 сентября 2018

Я использую JSF с Primefaces 5.3 и у меня проблемы с включением / отключением кнопки command.

Прежде всего, у меня есть этот вход:

<h:inputText id="series" value="#{bean.series}"
    required="false" converterMessage="Please enter three digits" >
    <f:validateRegex pattern="[0-9]{3}" />
    <p:ajax event="keyup" update="download"/>
    </h:inputText>

В компоненте поддержки это поле является целым числом

private Integer series;

И моя цель - включить / отключить кнопку «скачать», когда ввод не пустой. Мне все равно, если он не действителен, но только если он не содержит символов.

<h:commandButton id="download" value="Download"
action="#{bean.download}" 
disabled="#{empty bean.series}"/>

Событие обновления запускается при keyup, но из-за проверки атрибут 'series' в компоненте поддержки всегда имеет значение null.

Не могли бы вы помочь мне с решением? Спасибо

1 Ответ

0 голосов
/ 04 сентября 2018

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

Но если вы действительно этого хотите, используйте то, что сделано в Отключить / включить h: commandButton при проверке завершается неудачно / в порядке

<h:inputText id="series" value="#{bean.series}"
    required="false" converterMessage="Please enter three digits" binding="#{series}">
   <f:validateRegex pattern="[0-9]{3}" />
   <p:ajax event="keyup" update="download"/>
</h:inputText>

<h:commandButton id="download" value="Download" 
   action="#{bean.download}"  
   disabled="#{ ... EL using 'empty bean.series' and 'series.valid' ..." />

EL должен быть определен вами, так как вы знаете, какие комбинации пустых / не пустых и допустимых / недействительных должны сделать кнопку отключенной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...