quarta-feira, 31 de março de 2021

Como disparar ação dinâmica quando fecho o modal no X

 Olá pessoal,

espero que todos estejam bem.

Hoje vamos falar sobre uma dúvida recorrente que é como disparar uma ação dinâmica quando fechamos a caixa de diálogo modal no X.

Antes de dar a solução, primeiro vamos explicar alguns conceitos.

Há duas opções de ações que podem ocorrem quando uma caixa de diálogo é fechada: Close Dialog (Fechar Caixa de Diálogo) e Cancel Dialog (Cancelar Caixa de Diálogo).


O Close Dialog é um evento que deve ser acionado quando você fez alguma ação na página modal e agora quer fechá-la. Este evento é disparado normalmente quando você pressiona um botão, por exemplo o botão "Criar", "Excluir", "Aplicar alterações" etc.

O Cancel Dialog é um evento que deve ser acionado quando você simplesmente quer fechar sem ter feito ação alguma no modal. Normalmente ocorre quando o modal é fechado no "X" ou no botão de "Cancelar".

Um problema comum é que muitos usuários querem disparar ação dinâmica quando o evento Cancel Dialog é disparado, normalmente quando o usuário fecha a caixa de diálogo modal no "X". Como os dois eventos (Close Dialog e Cancel Dialog) internamente são acionados pelo evento javascript personalizado "dialogclose" do APEX, a solução é bem simples: você deve criar na página que abre o modal uma ação dinâmica que seja acionada pelo Evento Personalizado: "dialogclose" para o Seletor JQuery: body.


Espero que tenha gostado!

Até a próxima.

[Atualização: O APEX 21 possui esse recurso agora de maneira nativa]