我有一个简单的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的一层上进行。有人可能会提出一些建议吗?
答案 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,这样当请求返回时,该按钮将被启用。