相关疑难解决方法(0)

如何在执行ajax命令时查找验证错误(required ="true")的指示

我在对话框中有一个表单,通过单击带有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

32
推荐指数
1
解决办法
3万
查看次数

标签 统计

jsf-2 ×1