Javascript – Janela de Confirmação

Um função muito utilizada no javascript por sistemas web é a função confirm().

Aquela janelinha de confirmação, com as opções [ok] e [cancel].

Geralmente aparecem antes de executarmos alguma ação importante, como apagar um registro da tabela, ou iniciar algum processo demorado como a exportação de arquivos ou backup de dados.

Para isso basta criar um método, não que seja obrigatório, mas facilita bastante, já que você poderá reutilizar.

Método:

function temCerteza() {
    if ( confirm('Deseja realmente fazer isto?') ) {
        //alguma ação!
    }
}

Basicamente é isso, como ele retorna um boolean (true/false) não precisamos usar nenhum comparativo no if.

Chamariamos essa função em algum botão ou link, assim:

<img src="imagem.jpg" onclick="javascript:temCerteza();">

Simples assim. A partir disso podemos ir incrementando, por exemplo passar algum parâmetro para a função.

function temCerteza( obj ) {
    if ( confirm('Deseja realmente fazer isto com o '+obj+'?') ) {
        //alguma ação!
    }
}

E na chamada do método passaríamos o objeto:

<img src="imagem.jpg" onclick="javascript:temCerteza('meu valor');">

Agora, se você tem um formulário, com um botão submit, também pode usar o método acima, ficaria mais ou menos assim:

<form name="frm" action="pagina.html" method="POST" onsubmit="return temCerteza();">
    ...seus campos, isso inclui o botão com submit.
</form>

Mas neste caso precisaríamos dar um return true ou false no método. Fazendo esta pequena alteração.

function temCerteza() {
    if ( confirm('Deseja realmente fazer isto?') ) {
        return true;
    } else {
        return false;
    }
}

Basicamente é isso. Não tem muito mistério. Apenas use com moderação, não vá fazer como o windows vista que a cada clique nos pergunta se temos realmente certeza de que queremos fazer aquilo. :D

Sucesso!



Sobre o Autor

MarioSAM é faixa preta 2Dan de Taekwondo. Entusiasta do marketing online. Especulador do mercado financeiro. Projetista web com certificação SCJP da SUN. Com 10 anos de experiência em desenvolvimento de sistemas.