我在对话框中有一个表单,通过单击带有ajax的commandbutton来关闭该表单,
像这样
<h:commandButton value="Add" action="#{myBean.addSomething(false)}"
id="add_something_id" >
<f:ajax render="@form someTable" execute="@form"
onevent="closeAddNewSomethingDialogIfSucceeded"></f:ajax>
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
这是关闭对话框的js代码
function closeAddNewSomethingDialogIfSucceeded(data) {
if(data.status === 'success') {
$("#dialog_id").dialog("close");
}
}
Run Code Online (Sandbox Code Playgroud)
直到这里没问题......
现在我将一些对话框表单字段更改为required="true"现在我想阻止关闭对话框我得到验证错误...
但是ajax data.status仍然达到了它的success状态,我无法弄清楚我可以挂钩的验证失败的迹象......
有任何想法吗?
感谢BalusC回答我做了以下事情:
在JSF中,补充道:
<h:panelGroup id="global_flag_validation_failed_render">
<h:outputText id="global_flag_validation_failed" value="true"
rendered="#{facesContext.validationFailed}"/>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
f:ajax变成了
<f:ajax render="@form someTable global_flag_validation_failed_render"
Run Code Online (Sandbox Code Playgroud)
并在js中添加了以下检查
if(data.status === 'success') {
if($("#global_flag_validation_failed").length === 0){
$("#dialog_id").dialog("close");
}
}
Run Code Online (Sandbox Code Playgroud) jsf-2 ×1