JSF + JavaScript

Java

04/04/2012

Eu tenho um arquivo externo .js com algumas funcoes mas eu não consigo ligar ele a mesma forma com que fiz com o estilo
sempre me da este erro.

Erro: Compara_Datas is not defined

Como eu faço a linkagem do javaScripot com o jsf. Veja abaixo eu chamando no <p:inputmask>

<p:inputMask id=dataComunicacao value=#{planilhaBean.acidenteSelecionado.dataComunicacao} style=width:120px size=10 maxlength=10 required=true mask=99/99/9999 onblur=return Compara_Datas(gE(dataAcidente).value,gE(dataComunicacao).value,erro);>

Jose Boas

Jose Boas

Curtidas 0

Respostas

Davi Costa

Davi Costa

04/04/2012

<script src=/direc/midia/js/jquery.min.js type=text/javascript></script>

ou

<script type=text/javascript src=/primefaces-sample-1.0-SNAPSHOT/primefaces_resource/2.1.RC1/primefaces/charts.js></script>
alguns exemplos apenas

att Davi
GOSTEI 0
Jose Boas

Jose Boas

04/04/2012

Consegui resolver, mas eu não consigo dar foco, no ultimo campo da data mesmo eu pedindo para focar.
Ex:
<p:inputMask id=dataAcidente value=#{planilhaBean.acidenteSelecionado.dataAcidente} style=width:120px maxlength=10 required=true mask=99/99/9999>
<f:convertDateTime dateStyle=medium/>
</p:inputMask>
<p:inputMask id=dataComunicacao value=#{planilhaBean.acidenteSelecionado.dataComunicacao} style=width:120px size=10 maxlength=10 required=true mask=99/99/9999 onblur=Compara_Datas(gE(edicao:dataAcidente).value,gE(edicao:dataComunicacao).value,A data da comunicação não pode ser maior que a do acidente,edicao:dataAcidente);>
<f:convertDateTime dateStyle=medium/>
</p:inputMask>
Eu preciso possionar na dataComunicacao mas mesmo dando foco ele não vai, agora se dou foco na dataAcidente funciona.
Veja o meu java script
function gE(idElemento){
return document.getElementById(idElemento);
}
function Compara_Datas(data_inicial,data_final,mensagem,idElemento){
str_mensagem = mensagem;
dia_inicial = data_inicial.substr(0,2);
dia_final = data_final.substr(0,2);
mes_inicial = data_inicial.substr(3,2);
mes_final = data_final.substr(3,2);
ano_inicial = data_inicial.substr(6,4);
ano_final = data_final.substr(6,4);



if(ano_inicial > ano_final){
document.getElementById(idElemento).focus();
alert(mensagem);

return false;
}else{
if (ano_inicial == ano_final){
if(mes_inicial > mes_final){
document.getElementById(idElemento).focus();
alert(mensagem);

return false;
}else{
if(mes_inicial == mes_final){
if(dia_inicial > dia_final){
document.getElementById(idElemento).focus();
alert(mensagem);
return false;
}
}else{
return true;
}
}
}
}

}
GOSTEI 0
Davi Costa

Davi Costa

04/04/2012

estou dando uma passada muito rapidamente, mas parece q vc está esquecendo de passar o id :

<p:inputMask id=dataComunicacao value=#{planilhaBean.acidenteSelecionado.dataComunicacao} style=width:120px size=10 maxlength=10 required=true mask=99/99/9999 onblur=Compara_Datas(gE(edicao:dataAcidente).value,gE(edicao:dataComunicacao).value,A data da comunicação não pode ser maior que a do acidente,edicao:dataAcidente);>

e o js recebe 4 argumentos:

function Compara_Datas(data_inicial,data_final,mensagem,idElemento){

verifica essa passagem se está tudo ok.

att Davi
GOSTEI 0
Jose Boas

Jose Boas

04/04/2012

Estou passando sim porque senão não daria foco no dataAciente
onblur=Compara_Datas(gE(edicao:dataAcidente).value,gE(edicao:dataComunicacao).value,A data da comunicação não pode ser maior que a do acidente,edicao:dataAcidente(neste em mando o id);
GOSTEI 0
Davi Costa

Davi Costa

04/04/2012

este cara está mandando o id correto:
<p:inputMask id=dataComunicacao value=#{planilhaBean.acidenteSelecionado.dataComunicacao} style=width:120px size=10 maxlength=10 required=true mask=99/99/9999 onblur=Compara_Datas(gE(edicao:dataAcidente).value,gE(edicao:dataComunicacao).value,A data da comunicação não pode ser maior que a do acidente,edicao:dataAcidente);>

id=dataComunicacao é relmente edicao:dataAcidente...
bom se for... vc vai ter q fazer uns alert, nos ifs do seu javascript p entender o q tá acontecendo

att Davi
GOSTEI 0
Jose Boas

Jose Boas

04/04/2012

Estou mandando a data do acidente porque ele vai voltar, porque é um antes da dataComunicao mas quando eu mando a dataComunicacao nao posiciona.
GOSTEI 0
Jose Boas

Jose Boas

04/04/2012

Outra coisa eu sempre verifico o console de erros do firefox e não da erro, portanto estou passando o nome correto, só que ele não da foco na dataComunicacao,agora se eu mando dar foco na dataAcidente que vem antes da dataComunicao, funciona.
GOSTEI 0
Davi Costa

Davi Costa

04/04/2012

Por tudo o que vc falou n tem como testar seu js aki, a dica que te dou mais uma vez é encher teu js de alerts dentro dos ifs p vc entender o q está acontecendo

att Davi
GOSTEI 0
Jose Boas

Jose Boas

04/04/2012

blz sem problema.
GOSTEI 0
Dyego Carmo

Dyego Carmo

04/04/2012

Deu certo ?

Valeu !
GOSTEI 0
Jose Boas

Jose Boas

04/04/2012

Mais ou menos, por enquanto posso usar deste jeito mesmo.
GOSTEI 0
POSTAR