JSF + JavaScript
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);>
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
Curtidas 0
Respostas
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
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
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;
}
}
}
}
}
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
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
<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
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);
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
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
<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
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
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
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
att Davi
GOSTEI 0
Jose Boas
04/04/2012
blz sem problema.
GOSTEI 0
Dyego Carmo
04/04/2012
Deu certo ?
Valeu !
Valeu !
GOSTEI 0
Jose Boas
04/04/2012
Mais ou menos, por enquanto posso usar deste jeito mesmo.
GOSTEI 0