Coloquei em meu <h:form> a propriedade prependId=“false” para conseguir pegar os id’s de meus componentes jsf.
Consegui, porém não consigo mais utilizar o a4j…
Alguém sabe como conciliar os dois.
Estou utilizando richFaces, jsf…
Olá.
Posta aqui teu código pra gente dar uma olhada.
phillip.tessuto
Bom dia pessoal, tudo bem ???!!!
Então, meu problema é o seguinte :
Preciso fazer com que meus campos, componentes jsf, se alterem conforme eu clico no enter.
Gostaria de posicionar estes campos da meaneira que eu quisesse.
Daí, gerei um js para isto como você verá no código.
Para que este js entendesse bem o script, tive de colocar um atributo do h:form conhecido como prependId=“false”…
Ótimo, meu js funcionou do jeito que eu queria…
Porém, meu a4j nunca é mais acionado…
Será que consigo utilizá-los ao mesmo tempo…
Se vocês pudessem me ajudar ficaria bem grato…
<scripttype="text/javascript"><!--Beginnextfield="codeProductTrue";//iddoprimeirocampodositenetscape="";ver=navigator.appVersion;len=ver.length;for(iln=0;iln<len;iln++)if(ver.charAt(iln)=="(")break;netscape=(ver.charAt(iln+1).toUpperCase()!="C");functionkeyDown(DnEvents){//vequandoeonetscapeouIEk=(netscape)?DnEvents.which:window.event.keyCode;if(k==13){//precionateclaenterif(nextfield=='done'){alert("Apertada a o botão de envio formulário !!!");returnfalse;//returntrue;//enviaquandoterminaoscampos}else{//seexistemmaiscamposvaiparaoproximoeval('document.salesProd.'+nextfield+'.focus()');returnfalse;}}}document.onkeydown=keyDown;//worktogethertoanalyzekeystrokesif(netscape)document.captureEvents(Event.KEYDOWN|Event.KEYUP);//End--></script></head><body><f:view><f:loadBundlebasename="br.com.chopperia.i18n.sales"var="prd"/><h:formid="salesProd"prependId="false"><rich:panelid="panelId"><f:facetname="header"><h:outputTextvalue="TESTE"/></f:facet><br/><table><tr><td><h:outputTextid="codigo"value="Código"/></td><td><h:inputTextid="codeProductTrue"onkeypress="pegarEnter();"onfocus="nextfield ='inumber';"value="#{productBean.productCode}"><a4j:supportid="a4j05"event="onblur"ajaxSingle="true"oncomplete="if(#{productBean.verify == true}) #{rich:component('notProduct')}.show();"reRender="iname,iprice,inumber"actionListener="#{productBean.carregaCamposCodigo}"/></h:inputText></td><td><rich:spacerwidth="10"/><a4j:commandButtonid="adiction"oncomplete="if(#{productBean.message != null}) #{rich:component('insuficientProduct')}.show();"value="#{prd.adiction}"actionListener="#{productBean.calculateValue}"reRender="ototalvalue,listOrder,oname,oquantity,oprice"></a4j:commandButton></tr></table></rich:panel><h:form></f:view></body>
Aguardarei uma resposta de vocês…
Valeu pessoal…
Abs,
Priuli
Já tentou trocar o h:form por a4j:form ??
phillip.tessuto
Pode ser…
Não havia pensado nesta saída…
Poderia ser uma solução bem simples!!!
Vou fazer isto daqui a pouco, e já lhe digo!!!
Valeuzasso amigo!!!
Abs,
phillip.tessuto
Boa noite Pessoal,
Bom tentando passar o form para o a4j, também não adiantou!!!
Alguém tem mais alguma idéia!!!
Valeu…
Abs,
phillip.tessuto
Pessoal,
Fico agradecido pela atenção…
Passo aqui a solução encontrada para este problema :
No .js, passar na variável nextfield o id do componente que vem concatenado com o id do meu formulário por causa do JSF.
Então ficaria assim : nextfield = ‘salesProd:codeProductTrue’;
Ótimo!!!
Agora ao final do js deve-se arrancar o eval e fazer da seguinte maneira : document.getElementById(nextfield).focus();
Agora quando quise passar de um campo para outro utilizar este evento :
onfocus=“nextfield=‘id_componete:id_formulário’”…