关闭 Jquery 对话框之前未显示 JSF 验证错误

JSF Validation error is not displaying before close Jquery dialog

本文关键字:显示 JSF 验证 错误 Jquery 对话框 关闭      更新时间:2023-09-26

我有一个Jquery对话框来获取用户输入。

<div id="icPopup">
    <td>
        <h:selectOneMenu id="selectICType" value="#{sessionBean.icStartLetter}" required="true" requiredMessage="Select IC type"  style="width:100px;">
            <f:selectItem itemValue="" itemLabel="- Select -"/>
            <f:selectItems value="#{sessionBean.icStartLetterTypes}"/>
        </h:selectOneMenu>
    </td>
    <td  align="center">
        <h:inputText id="icNumber" value="#{sessionBean.icNumber}"></h:inputText>
    </td>
    <td>
        <div id="mainBtnGrey" class="mainBtnLeftAlign">
            <h:commandLink action="#{home.checkICForError}" value="Confirm"/>
        </div>
    </td>
</div>

我的脚本代码是

$('#mainBtnGrey').click(function (e) {
    e.preventDefault();
    $('#icPopup').dialog('close');
});

这里的问题是,在显示验证错误之前,对话框已关闭。如果 bean 返回验证错误,如何保持对话框打开?

如果您的脚本代码存在于 XHTML 页面上 <script/> 内 ,您可以使用以下命令检查 EL 的验证状态:

$('#mainBtnGrey').click(function (e) {
    e.preventDefault();
  if(!#{facesContext.validationFailed})
    $('#icPopup').dialog('close');
});

facesContext.validationFailed将检查整个 JSF 请求的验证状态是否失败。