我有一个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 请求的验证状态是否失败。