2013-07-15 75 views
0

啓動和停止javascript'indeterminate dialog'問題是,我幾乎沒有任何JavaScript知識,只是PrimeFaces的傳遞知識,而且我無法在文檔中找到如何操作: (JSF和PrimeFaces:通過

所以我有一個primefaces文本框中我的網頁上:

<p:inputText styleClass="step1-input" value="#{PageBean.documentToDownload}"> 
    <p:ajax event="keyup" update="infopanel,infopanel2,downloadbutton" listener="#{PageBean.validateUrl}"/> 
</p:inputText> 

在文本框中,當我寫的東西,一個動作發生,這需要幾秒鐘就可以完成的結果,一個。 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> 

有已經在頁面上primefaces statusDialog,我可以使用:

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

所以,我想要做的是:在我要啓動start()功能的輸入文本keyup事件,顯示一個dialog,只有當PageBean.validLink爲真(validLink設置在PageBean.validateUrl監聽器,它的瞬間) 當infopanelinfopanel2顯示爲一個Ajax動作,我想打電話給stop()功能。

那麼,我該怎麼做呢?

+0

什麼的'dialog'做什麼?它顯示來自「面板」的消息嗎?另外,當你使用'keyup'時,無論條件如何,都會調用'start()'。 – Andy

回答

0

如果我正確理解你的問題,你想在ajax動作完成時執行javascript函數?爲此,您可以在Ajax組件上使用的onComplete屬性:

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

如果你想使一個回調的AJAX reques之前執行的開始,你可以使用的OnStart屬性

+0

是的,就是這樣!謝謝! –