[Problema]JQuery com richfaces
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:
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?
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
Curtidas 0
Respostas
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
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
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(...
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
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
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
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
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.
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
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
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
Assim que possível fechar esse chamado
abcs
att Davi
GOSTEI 0