2014-09-05 74 views
1

我有一個myfile.js一個簡單的函數:如何用jQuery捕捉對話Primefaces?

function inclusaoDialog(args, dialog) { 
    if (!args.validationFailed) { 
     PF(dialog).hide(); 
    } 
} 

工作正常(primefaces_5):

<p:commandButton ... oncomplete="inclusaoDialog(args, 'dialogoTipo')" /> 

我,包括我的模板:

<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" /> 
<h:outputScript library="js" name="myfile.js" target="head"/> 

我試圖與

對話
$ = jQuery; 

$(document).ready(function inclusaoDialog(args, dialog) { 
    if (!args.validationFailed) { 
     PF(dialog).hide(); 
    } 
}); 

和:

<p:commandButton ... oncomplete="inclusaoDialog(args, '#frmTipo\\:dialogoTipo')" /> 

看一看形式:

<h:form id="frmCadastro"> 
    ... 
</form> 
<h:form id="frmTipo"> 
    <p:dialog header="Adicionar Tipo de Ocorrência" modal="true" 
     widgetVar="dialogoTipo" id="dialogoTipo" showEffect="blind" hideEffect="fade" 
     resizable="false" styleClass="cadastro-dialog" position="left,top"> 
     <h:panelGroup id="inclusaoTipoPanel"> 
      <p:messages /> 

      <p:panelGrid columns="2"> 
       <p:outputLabel value="Tipo" /> 
       <h:panelGroup> 
        <p:inputText id="novoTipoOcorrencia" size="30" maxlength="45" 
         value="#{ocorrenciaView.tipoOcorrencia.descricao}" 
         required="true" 
         requiredMessage="Informe o novo tipo de Ocorrência." /> 

        <p:commandButton value="Incluir" 
          style="display: block; margin-top:5px;" 
          actionListener="#{ocorrenciaView.addTipoOcorrencia}" 
          process="@this :frmTipo:novoTipoOcorrencia" 
          update=":frmCadastro:tipoOcorrencia :frmTipo:inclusaoTipoPanel" 
          oncomplete="inclusaoDialog(args, '#frmTipo\\:dialogoTipo')" /> 
       </h:panelGroup> 
      </p:panelGrid> 
     </h:panelGroup> 
    </p:dialog> 
</h:form> 

的primefaces組件崩潰。如果我刪除

[<h:outputScript library="primefaces"...] 

有沒有崩潰,但無論如何沒有工作。

我也沒有嘗試(W3schools):

$.noConflict(); 
jQuery(document).ready(function inclusaoDialog(args, dialog) { 
    if (!args.validationFailed) { 
     jQuery(dialog).hide(); 
    } 
}); 

我已經找到了如何捕捉JSF的客戶端樹的元素,但像primefaces框架有庫衝突問題。那麼,如何用jQuery捕捉對話框的primefaces呢? 我想我陷入了一堆錯誤。 有些想法?

回答

0

嘗試

RequestContext.getCurrentInstance.execute("Pf('widgetdialogname').hide()") 

在管理bean的postconstruct