0

問題は、私は JavaScript の知識がほとんどなく、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>

statusDialog私が使用できるページにはすでにprimefacesがあります:

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

だから、私がやりたいことは次のとおりです。入力テキストのイベントで関数keyupを起動し、が true の場合にのみ表示したい (がリスナーに設定されており、瞬時に発生する) そして、またはが ajax アクションとして表示される場合、私は関数を呼び出したい。start()dialogPageBean.validLinkvalidLinkPageBean.validateUrlinfopanelinfopanel2stop()

それで、どうすればそれを行うことができますか?

4

1 に答える 1

0

あなたの質問を正しく理解できたら、ajax アクションが完了したときに JavaScript 関数を実行しますか? このために、ajax コンポーネントで oncomplete 属性を使用できます。

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

ajax リクエストが開始される前にコールバックを実行する場合は、onstart 属性を使用できます。

于 2013-07-16T07:09:55.987 に答える