Como eu não chamo o Servlet?

Bom dia Pessoal!!

Tenho uma jsp para cadastro de usuario que tem dois campos, senha e confirmação de senha, esta tudo dentro de form com um botão submit. Antes de enviar o formulario eu confirmo se o campo senha e confirmação de senha estão e retorno falso quando nao estão mas mesmo assim o formulario e enviado para o servlet:

<script type="text/javascript"> function validarConfirmacao(){ var senha = document.formulario.txtSenha.value; var confirmacao = document.formulario.txtConfirmaçãoSenha.value; if(senha != confirmacao){ alert("confirmacao e senha diferentes") document.seuForm.confirmacao.focus(); formulario.onsubmit = function(){return false}; } } </script>

no botão submit

<input onclick="validarConfirmacao();" type="submit" value="Gravar" />

e o formulario:

[code]

[/code]

gostaria de saber o que fazer para interromper a ação de envio para o servlet quando a funcão de verificar senha retornar falso!!!

Obrigado!

É só usar o evento onsubmit do formulário.

[code]

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Teste</title>
    
    <script type="text/javascript">
    
            function validarConfirmacao() {
                
                var senha = document.formulario.txtSenha.value;
                var confirmacao = document.formulario.txtConfirmaçãoSenha.value;
                
                if( senha != confirmacao ){
                    alert("confirmacao e senha diferentes");
                    return false;
                }
                
                return true;
                
            }
        
    </script>

</head>

<body>

    <form name="formulario" action="ServletManutencaoDados" method="POST" onsubmit="return validarConfirmacao();">
        <!-- outros campos aqui... -->
        <input type="submit" value="Gravar"/>
    </form>

</body>
[/code] []´s

O exemplo acima já deve funcionar, gostaria de esclarecer alguns motivos do seu método não funcionar.

Imagino que esteja usando o firefox pra testar.
Quando dá erros de javascript, o firefox não dá aviso algum, você pensa que está tudo ok.
Acostume-se ao usar o console de erros pra verificar o que está acontecendo (Menu Ferramentas -> Console de Erros)

Um dos seus erros é na linha:

document.seuForm.confirmacao.focus(); 

O nome do seu form é formulario. Quando tenta acessar seuForm ele não encontrará e dará erro.

Na linha abaixo:

formulario.onsubmit = function(){return false};  

Você está chamando diretamente formulario. Essa variável não existe no espaço global. Existe document, que possui a propriedade formulario.
Sempre utilize document.nomeDoForm para acessar o form ou crie uma variável apontado.

Uma última coisa pra ressaltar: Se toda a sintaxe estivesse certa, ainda há um erro em sua lógica.

Você associa ao onsubmit uma função que sempre retorna false. Mas nunca associa uma que retorna true.

Se o usuário errar a confirmação da primeira vez, nunca mais conseguirá fazer submit no form, pois sempre retornará false.