Na minha aplicação eu tenho uma dataTable que está dentro de um formulário. A cada linha da mesma, ela lista alguns dados do banco de dados e nas duas últimas colunas existem commandButtons de alterar e remover (para cada linha), que usam actionListener cada um para realizar a tarefa apropriada.
Quando eu clico do remover eu gostaria que fosse invocada uma função de confirmação do javascript. Até ai tudo bem, só que o problema é que quando afunção é invocada, independente do retorno da mesma (true ou false) o formulário é submetido. Gostaria de saber como fazer para o formulário não ser submetido, só ser submetido, ou melhor, o action listener só pode ser executada se a função retornar true.
Não sei se entendi ao certo o que vc quer, mas veja se isso ajuda…
Nunca trabalhei com JSF, mas normalmente eu uso uns scripts JS na minha aplicação. Por exemplo, quando os detalhes de um certo item são exibidos, habilito uma opção no meu menu dropdown para apagar aquele item. Quando clico nesta opção chamo uma função JS apenas para confirmar que o usuário quer excluir o item. Se a opcão for sim, o script JS direciona para outra JSP, ou para uma action, servlet ou o que for…
script onde confirmo a exclusão e direciono para outro componente (aqui uma action do Mentawai)
<script>
function confirmaExclusao(){
if(confirm("Tem certeza que deseja excluir este item?"))
document.location.href="Cadastro.excluir.mtw?id=${item.id}";
}
</script>
Chamando o script quando o botão é clicado no meu menu:
Obrigado pela resposta, mas na verdade não é isso que eu quero.
Não é em um link q eu estou clicando e sim num botão de formulário, para que eu possa usar um actionListener no jsf. Existe também um componente de link para formulários no jsf, mas ele não serve para o q eu preciso e ele se comporta como o botão.