JSF和PrimeFaces:启动和停止javascript';不确定对话框';通过

JSF和PrimeFaces:启动和停止javascript';不确定对话框';通过,javascript,jsf,jakarta-ee,primefaces,dialog,Javascript,Jsf,Jakarta Ee,Primefaces,Dialog,问题是,我几乎不懂javascript,只是对PrimeFaces略知一二,在文档中找不到操作方法:( 因此,我的页面上有一个primefaces文本框: <p:inputText styleClass="step1-input" value="#{PageBean.documentToDownload}"> <p:ajax event="keyup" update="infopanel,infopanel2,downloadbutton" listener="#{Pa

问题是,我几乎不懂javascript,只是对PrimeFaces略知一二,在文档中找不到操作方法:(

因此,我的页面上有一个primefaces文本框:

<p:inputText styleClass="step1-input" value="#{PageBean.documentToDownload}">
    <p:ajax event="keyup" update="infopanel,infopanel2,downloadbutton" listener="#{PageBean.validateUrl}"/>
</p:inputText>
页面上已经有一个primefaces
statusDialog
,我可以使用:

<script type="text/javascript">
    function start(){ statusDialog.show(); }
    function stop(){ statusDialog.hide(); }
</script>

函数start(){statusDialog.show();}
函数stop(){statusDialog.hide();}
因此,我想做的是:在输入文本中的
keyup
事件上,我想启动
start()
函数,以显示
对话框
,前提是
PageBean.validLink
为真(
validLink
PageBean.validateUrl
侦听器中设置,并且是即时的) 当
infopanel
infopanel2
显示为ajax操作时,我想调用
stop()
函数


那么,我该怎么做呢?

如果我正确理解了您的问题,您希望在ajax操作完成时执行javascript函数吗?为此,您可以在ajax组件上使用oncomplete属性:

<p:ajax event="keyup" update="infopanel,infopanel2,downloadbutton" listener {PageBean.validateUrl}" oncomplete="stop()"/> 

对话框
的作用是什么?它是否显示来自
面板
的消息?此外,当您使用
键控
时,无论条件如何,都将调用
启动()
。是的,就是这样!谢谢!
<p:ajax event="keyup" update="infopanel,infopanel2,downloadbutton" listener {PageBean.validateUrl}" oncomplete="stop()"/>