Olá a todos,
Tenho uma página JSP e nela existe uma variável Java chamada liberado. Enquanto essa variável liberado for false dois botões da página devem ficar invisíveis mas quando a variável for passada para true os botões devem ficar a mostra.
Fiz assim, no body coloquei para ocultar os botões:
os botões são do tipo submit:
O javascript para ocultar e mostrar é esse:
Notei que quando passava a variável para true ele executava a função mostrabotoes, mostrava os botões rapidamente e os deixava invisíveis de novo. Então eu fiz a função mostrabotoes ser recursiva chamando ela mesma para ver se ficava mostrando os botões mas mesmo assim não rolou. Eles não estão aparecendo mesmo a variável liberado estando como true.
Alguma sugestão?
na funcao mostrabotoes coloque “block” no lugar de none
Tentei colocar block mais não deu certo também. Alguma outra sugestão? valeu
[code]
function mostrabotoes(jspParam){
while(jspParam == true){
document.getElementById(‘confirmar’).style.display= ‘block’;
document.getElementById(‘desistir’).style.display= ‘block’;
}
mostrabotoes(’<%=liberado%>’);
}
function ocultarInicial(){
document.getElementById(‘confirmar’).style.display= ‘none’;
document.getElementById(‘desistir’).style.display= ‘none’;
}
[/code]
tenta assim
Eu não consegui fazer funcionar de jeito nenhum para ocultar e mostrar os botões, então tentei desativá-los e ativá-los, mas não está funcionando direito. Coloquei a função ocultarInicial no onLoad da página, a função mostrarBotoes fica sendo chamada pela página e a função ocultarBotoes está no onClick dos botões que devem aparecer e sumir. Não está funcionando nada…rs
<script language="javascript">
function mostrarBotoes(jspParam){
if(jspParam=='true'){
document.getElementById('confirmar').disabled = false;
document.getElementById('desistir').disabled = false;
history.go(0);
}
}
function ocultarBotoes(jspParam){
if(jspParam!='true'){
document.getElementById('confirmar').disabled = true;
document.getElementById('desistir').disabled = true;
<%
getServletContext().setAttribute("liberado", "false");
liberado = (String) getServletContext().getAttribute("liberado");
%>
//history.go(0);
}
}
function ocultarInicial(jspParam){
if(jspParam!='true'){
document.getElementById('confirmar').disabled = true;
document.getElementById('desistir').disabled = true;
}
}
Tem um jeito mais fácil de ocultar e mostrar os botões ou desativar e ativar?
Então galera,
Consegui sem precisar usar javascript, em jsp criei uma variável boolean e seto ela para true ou false dependendo de algumas ações do usuário:
boolean liberado = false;
Dai exibo os botões se a variável for true, senão não exibe:
if(liberado == true){
%>
<td>
<input type="submit" name="acao" value="Confirmar" />
</td>
<td>
<input type="submit" name="acao" value="Desistir" />
</td>
<%}%>
Fica a dica para quem tiver o mesmo problema. Obrigado a quem tentou ajudar =)
[quote=bruno_r_santana]Então galera,
Consegui sem precisar usar javascript, em jsp criei uma variável boolean e seto ela para true ou false dependendo de algumas ações do usuário:
boolean liberado = false;
Dai exibo os botões se a variável for true, senão não exibe:
if(liberado == true){
%>
<td>
<input type="submit" name="acao" value="Confirmar" />
</td>
<td>
<input type="submit" name="acao" value="Desistir" />
</td>
<%}%>
Fica a dica para quem tiver o mesmo problema. Obrigado a quem tentou ajudar =)[/quote]
De fato os botões não iriam aparecer nunca!
Você tá executando uma função do javascript “getElementById”, que serve para voce executar uma ação em um determinado elemento com o id especificado, sendo que nos botões você
não os deu um id.
Os botões deveriam ficar assim:
<input type="submit" name="acao" id="confirmar" value="Confirmar" />
<input type="submit" name="acao" id="desistir" value="Desistir" />
e o javascript:
<script language="javascript">
function acaoBotao(jspParam){
if(jspParam){
document.getElementById('confirmar').style.display= 'block' ;
document.getElementById('desistir').style.display= 'block';
history.go(0);
}
else{
document.getElementById('confirmar').style.display= 'none' ;
document.getElementById('desistir').style.display= 'none';
}
}
Com jQuery isto ficaria menor e melhor, mas o tratamento deste tipo de situação não pode ser feito por javascript, tendo em vista que com o
firebug qualquer um burlaria sua aplicação com facilidade.
O tratamento correto deve ser feito a nivel de servidor com o próprio JSP mesmo.