Dúvida integracao javascript + jsp

4 respostas
S

Bom dia pessoal…Estou com uma dúvida na integração de um JSP com javascript…
Preciso fazer a seguinte operação:
Quando o usuario clica em um botao, abro um pergunta para o usuário se ele confirma ou não a operação.
Se “SIM” seto valores num bean auxiliar …caso contrario volto uma tela do sistema.

Problema: Colocando o seguinte código em meu programa…na carga do JSP ele passa por toda a rotina javascript…ou seja…seta os
valores antes mesmo do usuario clicar no botao… Como faço para evitar isso??? ou seja fazer com que só rode o java script efetivamente no clique do botao…

Rotina javascript inserida no inicio do programa:

function enviar(par)
{
    if (par == 'confirmar')
    {
        var opt = confirm("Confirma?")
        if (opt == true)    
        {
            
            document.detalhamento.submit();                     
        }   
        else 
            document.detalhamento.action='history.go()';                 
    }    
}

Ação dos botoes:

<input type="button" onClick="enviar('confirmar')" name="bt1" value="Confirmar">

Muito obrigado a quem puder ajudar!!!

Abraços

4 Respostas

C

Sercon,

Você pode fazer da seguinte forma

function teste(){
	alert( 'Dentro da função teste' );
}

E chamando a funcao

<input type="button" value="teste" onclick="if( confirm('Tem certeza bla bla bla?') == true ){ teste(); }else{ history.back(); }">

espero ter ajudado

S

Obrigado pela ajuda !!! mais ainda não funcionou…

O problema que inserindo códigos javascript na pagina jsp, durante a carga (vejo isso debugando) ele passa por todas as linhas do jsp.

E dentro da funcao javascript tenho alguns métodos set´s em um bean auxiliar de armazenamento.

ex:

function enviar(par)        
    {
    if (par == 'confirmar')
    {
        var opt = confirm("Aprova Orçamento?")
        if (opt == true)    
        {
            beanauxiliar.SetValor1(campo1);
            beanauxiliar.SetValor1(campo1);     
            document.detalhamento.submit();
        }   
        else 
            document.detalhamento.action='history.go()';
    }    
}

Ou seja…na carga…como esta passando por todos as linhas do jsp inclusive as acima ele seta valores no bean… independente do usuario ter confirmado operação pela mensagem de alerta…

Alguem teria alguma dica???

Mais uma vez obrigado!!!

P

Apenas lembrando que o jsp roda no server, enquanto o javascript roda no cliente !!!

Não existe integração entre eles !!

O que acontece:
Sua pagina, qdo requisitada, é excutada no server. Todos os scripltes são executados no server, então o server devolve a pagina, sendo esta html. Neste ponto não existe mais JSP. Por isso JSP não se integra com javascript !

P

O que vc poderia fazer é chamar um servlet para setar o bean, passando atraves da pagina, os parametros para isso.

Ou chama o jsp novamente, passando um parametro para ele !!

Criado 21 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 4
Participantes 3