我有一个带有输入字段和保存按钮的 jsf 表单,如下面的代码所示。我想要实现的是,当单击保存按钮时,应使用正则表达式模式验证输入。如果验证失败,则不应显示保存确认对话框。否则会显示保存确认对话框,让用户选择是否保存。
在下面的代码中,尽管有条件 onclick="if(#{conditionOK}),但始终显示对话框。我不希望显示确认对话框,当 conditionOK 返回 false !!!经过多次尝试后,我认为 facescontext .isValidateFailed() 不会被重新评估。
请帮忙 :(
我想要的只是检查正则表达式验证器是否返回true。对于这种情况,应显示确认对话框。
我的方法可能是错误的。非常感谢你们是否还有其他解决方案。
<h:form id="save_all_form">
<p:inputTextarea rows="1" style="width:100%;resize:none"
value="#{cusBean.saveAll}" autoResize="false"
validatorMessage="Wrong format">
<f:validateRegex pattern="#{msgs.pattern}" />
</p:inputTextarea>
<ui:param name="conditionOK"
value="#{facesContext.postback and !facesContext.validationFailed}" />
<p:commandButton value="#{msgs.button_overwrite_all}"
onclick="if(#{conditionOK}){confirmation.show()}"/>
</h:form>