[Problema]JQuery com richfaces

Java

05/08/2011

Olá, estou com um problema e gostaria de uma luz(que parece não existir pra mim...

Tivemos que mudar todo o designe de um sistema que é feito em JSF(richfaces+facelets+primefaces) o designer foitodo feito com jquery e algumas funcionalidade do sistema simplesmente pararam e até agpra estou sem entender pq...

em especial a validator que antes de colocarmos essa biblioteca independente do JQuery que estava em um <h:comandbutton> segue o código:


       
<h:commandButton id="btnSalvar" value="#{msgSistema.btnSalvar}"                  disabled="#{((disabled!=null)? disabled : 'false')}"                  styleClass="botaoSalvarVoltar"                  onclick="if(!jQuery('#formVI').valid())
 {msgError('#{msgSistema.msgFieldErroGenerico}'); return false;} 
this.disabled=true; $('formVI:salvar').click();"                  rendered="#{rich:isUserInRole(roles)}" />                



 


a parte do onClick, antes de fazermos as mudanças funcionava perfeitamente, agora ele nao executa nada e fica parado na mesma pagina, o que poderia ser isso? alguma luz ai?


alguma luz?
Wisley Souza

Wisley Souza

Curtidas 0

Respostas

Davi Costa

Davi Costa

05/08/2011

Se for fazer uso do JQuery, utilizem $j(...) ao invés de $(...). Essa mudança é necessária para evitar conflito devido ao RichFaces já utilizar o identificador $
Uma solução que vi o pessoal fazendo na internet: $j = jQuery.noConflict(); Então para fazer referencia ao jQuery basta utilizar $j ao invés de $ que o RichFaces já utiliza.

Dá uma pesquisada nisso.

att Davi
GOSTEI 0
Wisley Souza

Wisley Souza

05/08/2011

isso eu ja fiz, fiz esse teste, nao e por isso q ta dando errado nao, antes funcionava,
depois que colocamos a biblioteca do jQuery que deu problema...


e nao to usando o $ se tu notar ele ta jQuery(...
GOSTEI 0
Davi Costa

Davi Costa

05/08/2011

Essa biblioteca que vc fala é um js?
Pq se for o js do jquery, vc vai ter que alterar ele inteiro fazendo essa substituição citada antes... faz esse teste p ver se volta a funcionar.

att Davi
GOSTEI 0
Wisley Souza

Wisley Souza

05/08/2011

vou por pra vc meu codigo facelets:


<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:c="http://java.sun.com/jstl/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    
    
    <c:choose>
        <c:when test="#">
            <a4j:commandButton id="btnSalvar" value="#{msgSistema.btnSalvar}"
                disabled="#{((disabled!=null)? disabled : 'false')}"
                styleClass="botaoSalvarVoltar"
                onclick="if(!jQuery('#formVI').valid()) {msgError('#{msgSistema.msgFieldErroGenerico}'); return false;} #; this.disabled=true;"
                rendered="#{rich:isUserInRole(roles)}" reRender="btnSalvar"
                oncomplete="if(jQuery('#formVI').valid()){limpaFormValidationErrors();}" />


            <a4j:commandButton id="btnSalvarDisabled"
                value="#{msgSistema.btnSalvar}" disabled="true"
                styleClass="botaoSalvarVoltar" onclick="return false"
                alt="#{msgSistema.msgBtnDesabilitado}"
                title="#{msgSistema.msgBtnDesabilitado}"
                rendered="#{!rich:isUserInRole(roles)}" />

            <a4j:commandButton id="btnCancelar" value="#{msgSistema.btnCancelar}"
                action="cancelar" styleClass="botaoSalvarVoltar" immediate="true"
                type="reset"
                onclick="jQuery('#formVI').validate().resetForm(); this.disabled=true;"
                rendered="#" reRender="btnCancelar" />
        </c:when>


        <c:otherwise>

       // AQUI ESTÁ MEU PROBLEMA

            <h:commandButton id="btnSalvar" value="#{msgSistema.btnSalvar}"
                disabled="#{((disabled!=null)? disabled : 'false')}"
                styleClass="botaoSalvarVoltar"
                onclick="if(!jQuery('#formVI').valid()) {msgError('#{msgSistema.msgFieldErroGenerico}'); return    false;} this.disabled=true; $('formVI:salvar').click();"
                rendered="#{rich:isUserInRole(roles)}" />

      //TERMINO DO MEU PROBLEMA


            <h:commandButton id="btnSalvarDisabled"
                value="#{msgSistema.btnSalvar}" disabled="true"
                styleClass="botaoSalvarVoltar" onclick="return false"
                alt="#{msgSistema.msgBtnDesabilitado}"
                title="#{msgSistema.msgBtnDesabilitado}"
                rendered="#{!rich:isUserInRole(roles)}" />

            <h:commandButton
                onclick="$('formVI:btnCancelar').onclick(); return false;"
                value="#{msgSistema.btnVoltar}" styleClass="botaoSalvarVoltar"
                rendered="#{btnCancelar == null ? true : false}" />

            <h:commandLink id="btnCancelar" immediate="true"
                action="#{mBeanCancelar.doCancelar}">
                <f:setPropertyActionListener value="#"
                    target="#{mBeanCancelar.managedBean}" />
            </h:commandLink>

        </c:otherwise>
    </c:choose>




</ui:composition>


GOSTEI 0
Wisley Souza

Wisley Souza

05/08/2011

eu joguei todas as bibliotecas CSS e js dojQuery la no meu facelets que define meu Template...


o layout, tudo fica direito, o problema esta nessa validação do button, ele nao executa nada, nao sai da pagina, verificasmos que ele está carregado o jQuery do Prime faces e isso pode está dando problema.
GOSTEI 0
Wisley Souza

Wisley Souza

05/08/2011

RESOLVIDO resolvemos assim: abrimos o arquivo do primefaces renomei o o arquivo do jquery, enfiei um novo atualizado com o $.noConflict no fim e agora tudo está perfeito... nao sei se isso vai ajudar alguém, mas se alguém passar pelo memso problema ta ai a solução.
GOSTEI 0
Davi Costa

Davi Costa

05/08/2011

Justamente o que eu previ. Show de bola cara e vc ajudou sim, muita gente passa por isso.
Assim que possível fechar esse chamado

abcs

att Davi
GOSTEI 0
POSTAR