从 javascript 控制 primefaces 对话框

Controlling primefaces dialog from javascript

我尝试在 bean 验证失败时从 java 脚本控制 primefaces 显示和隐藏,但它不起作用。按照论坛里的建议试过 在 java 脚本中使用组件的 widgetVar 名称,甚至尝试使用组件的 ID 但失败了。

XHTML

<p:dialog header="Modal Dialog" id="mglasspaneid" showHeader="false" closable="true" resizable="false" draggable="false" widgetVar="mglasspane" style="height: 50px !important;" modal="true">
        <span id="loading" draggable="false" style="height: auto !important;">Loading</span>
</p:dialog>

Javascript

<script>
        function handleComplete(data) {
            if (data.status === 'success') { 

               console.log(document.getElementById('validation-failed').value);
               mglasspane.hide();

            }else{
                console.log(document.getElementById('validation-failed').value);
                mglasspane.show();
            }                
        }
</script>

从 PrimeFaces 5.0 开始,您必须使用 PF 函数调用任何组件(即 PF('widgtVar') 而不是 4.0 中已弃用的 widgetVar )。来源 here.

mglasspane.hide(); 替换为 PF('mglasspane').hide(); 应该可行。


有关 PF 函数的更多信息 here