我有一个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返回验证错误,如何保持打开对话框?
答案 0 :(得分:1)
如果您的脚本代码出现在<script/>
内的XHTML页面上,您可以使用以下方法检查EL的验证状态:
$('#mainBtnGrey').click(function (e) {
e.preventDefault();
if(!#{facesContext.validationFailed})
$('#icPopup').dialog('close');
});
facesContext.validationFailed
将检查整个JSF请求失败的验证状态。