如何在按下其他按钮之前禁用提交按钮?

时间:2011-09-22 13:34:55

标签: forms jsf button submit confirm

我有一个简单的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>

在点击“提交”之前,用户必须按下“确认”按钮。否则,“提交”按钮旁边会显示错误消息。如果没有预先按下确认,则用户无法单击提交按钮。非常希望在UI的一层上进行。有人可能会提出一些建议吗?

1 个答案:

答案 0 :(得分:1)

您可能希望更改逻辑,以便在单击提交按钮时向用户显示确认对话框。像这样简单:

<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属性。它需要一个布尔值。这个布尔变量可以在您的confirm方法中设置为true,这样当请求返回时,该按钮将被启用。