簡體   English   中英

JSF和PrimeFaces:通過以下方式啟動和停止javascript“不確定對話框”

[英]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監聽器,它的瞬時)並且當infopanelinfopanel2顯示為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM