[英]JSF and PrimeFaces: launching and stopping javascript 'indeterminate dialog' via
問題是,我幾乎不了解javascript,而只是對PrimeFaces有所了解,而我在文檔中找不到操作方法:(
因此,我在頁面上有一個primefaces文本框:
<p:inputText styleClass="step1-input" value="#{PageBean.documentToDownload}">
<p:ajax event="keyup" update="infopanel,infopanel2,downloadbutton" listener="#{PageBean.validateUrl}"/>
</p:inputText>
在文本框中,當我寫東西時,將發生一個動作,這需要幾秒鍾才能完成。 結果,頁面上出現一個panel
,該panel
要么顯示內容,要么說我寫的內容是錯誤的:
<p:panel id="infopanel" visible="#{PageBean.validLink and PageBean.info != null}" header="Information" style="margin-bottom:10px;">
<h:outputText value="Everything is okay"/>
</p:panel>
<p:panel id="infopanel2" visible="#{PageBean.validLink and PageBean.info == null}" header="Error" style="margin-bottom:10px;">
<h:outputText value="An undefined error occured."/>
</p:panel>
我可以使用該頁statusDialog
已經存在的primefaces statusDialog
:
<script type="text/javascript">
function start(){ statusDialog.show(); }
function stop(){ statusDialog.hide(); }
</script>
所以,我想要做的是:在keyup
在我要啟動的輸入文本事件start()
函數,顯示一個dialog
,只有當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()"/>
如果要在ajax請求開始之前執行回調以執行,則可以使用onstart屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.