Как отключить кнопку отправки, пока не будет нажата другая кнопка? - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть простая форма JSF:

<h:form>
   <h:inputText value="#{textBean.firstName}"/>
   <h:inputText value="#{textBean.lastName}"/>
   <h:commandButton value="confirm" action="textBean.confirm"/>
   <h:commandButton value="submit" action="textBean.submit"/>
</h:form>

Необходимо, чтобы перед нажатием кнопки «отправить» пользователь нажал кнопку «подтвердить».В противном случае рядом с кнопкой «отправить» отобразится сообщение об ошибке.Пользователь не может нажать кнопку отправки, если предварительно не нажать для подтверждения.Это очень желательно сделать на уровне пользовательского интерфейса.Кто-то может предложить что-то об этом?

1 Ответ

1 голос
/ 22 сентября 2011

Возможно, вы захотите изменить логику так, чтобы при нажатии кнопки отправки диалоговое окно подтверждения предоставлялось пользователю.Что-то простое, как это:

<h:form>
   <h:inputText value="#{textBean.firstName}"/>
   <h:inputText value="#{textBean.lastName}"/>
   <h:commandButton value="submit" action="#{textBean.submit}" onclick="return confirm('Confirm form submit?');"/>
</h:form>

В противном случае, если вы хотите получить описанное выше поведение, вы можете отключить / скрыть кнопку отправки, пока пользователь не нажмет кнопку подтверждения, что-то вроде:

<h:form>
   <h:inputText value="#{textBean.firstName}"/>
   <h:inputText value="#{textBean.lastName}"/>
   <h:commandButton value="confirm" action="#{textBean.confirm}"/>
   <h:commandButton value="submit" action="#{textBean.submit}" disabled="#{textBean.btnDisabled}"/>
</h:form>

Атрибут disabled можно заменить атрибутом рендеринга, если вы хотите скрыть кнопку.Требуется логическое значение.Эта логическая переменная может быть установлена ​​в вашем методе подтверждения на true, чтобы при возвращении запроса кнопка была включена.

...