如何禁用提交按钮,直到按下其他按钮?
问题描述:
我有一个简单的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>
这是必要的,你点击之前“提交”用户必须按下按钮“确认”。否则,在“submit”按钮旁边会显示一条错误消息。用户不能点击提交按钮,如果没有预先按下确认。在UI的一层上执行它是非常可取的。有人可能会对此提出一些建议?
答
您可能想要更改逻辑,以便点击提交按钮时向用户显示一个确认对话框。简单的东西是这样的:
<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>
的如果要隐藏按钮,则可以使用已渲染的属性替换已禁用的属性。它需要一个布尔值。这个布尔变量可以在您的confirm方法中设置为true,以便在请求返回时启用该按钮。