Como fazer para ao salvar o formulário não recarregar a página?
IMPORTANTE: ao recarregar a página do formulário o sistema gerencia o estado de cada informação e elemento, gerencia a permissão de acesso em elementos, também controla o estágio/etapa do formulario ou workflow entre outros, sendo assim, use essa dica APENAS em casos restritos no qual você tenha plena consciência que não ocorrerá nenhum dano ao registro.
Acesse a customização de um formulário. Ao acessar, entre na Aba "Configurações", em seguida, expanda "Outras Configurações" e defina um nome para a função javascript que será executada após o post.
O nome da função javascript deve ser preenchida no campo "Executar a função Javascript abaixo após salvar ou executar qualquer ação bem-sucedida no formulário:" como mostra em azul na imagem abaixo.
zoom do campo da imagem anterior:
No exemplo, foi definido o nome "executeAfterPost" para o nome da função javascript.
Abaixo segue um exemplo da função e a explicação comentada em cada linha. O importante é entender que ao retornar como false a função executeAfterPost(formId, response, formAction) o sistema entende que deve parar ali a execução dos próximos passos, sendo assim, ele nao recarrega a página e nem executa qualquer outro passo que esteja programado para executar e a página se mantém no mesmo estado.
OBRIGATÓRIO: para novos registros é obrigatório permitir o recarregamento da página. Para checar utilize a função js formContext.form.isNew()
ATENÇÃO: nessa função é necessário testar se o formAction é a opção salvar. o formAction é retornado como parametro da função. Para checar utilize a função js formContext.form.action.isSave(formAction)
function executeAfterPost(formId, response, formAction) {
//verifica se é o formAction de Salvar e também se nao é um novo registro, para novos registros é obrigatório permitir o recarregamento da página
if (formContext.form.action.isSave(formAction) && !formContext.form.isNew()) {
if(response.success)
formContext.msg.success('Salvo com sucesso', 'Sucesso');
else
formContext.msg.error('Erro ao salvar ' + response.erros, 'title');
//ao retornar false, o sistema ignora qualquer ação nativa que deveria ser executada pela pela ferramenta
return false;
}
}