Interromper execução do formulário (RESOLVIDO)

Bom dia!
Preciso de uma ajuda na seguinte situação:
No meu formulário ele tem campos oculto (sc_field_display), estes campos são exibidos conforme o usuário clica em algum campo (evento ajax on chance), está tudo funcionando, porem ao realizar a validação dos campos no evento onvalidate (sc_error_message seguido de sc_error_exit) o formulário até que é interrompido a execução, porem após interromper ele mostra todos os meus campos que estavam ocultos sendo que o correto era interromper o formulário ali naquele ponto onde a validação encontrou o erro e exibiu a mensagem.
Alguém poderia me orientar em como após o sc_error_exit ele não mostrar os meus campos que estão ocultos.

Bom dia João, tudo bem?
A verificação se estes campos estão vazios ou não, deve partir da mesma condição que utiliza para mostrar/esconder. Não sei se é isso que se passa, mas pode ser uma das causas.

obrigado @thyagohenrique85, deixa eu detalhar um pouco mais a situação:

tenho 4 campos no formulario
campo1
campo2
campo3
campo4

no onload tenho o seguinte:
sc_field_display({campo1}, “on”);
sc_field_display({campo2}, “off”);
sc_field_display({campo3}, “off”);
sc_field_display({campo4}, “off”);
no evento ajax onchange tenho:
sc_field_display({campo1}, “on”);
sc_field_display({campo2}, “on”);//ao clicar e selecionar a opção no campo1 o ajax exibi o campo2
sc_field_display({campo3}, “off”);
sc_field_display({campo4}, “off”);

no onvalidate tenho:
if ({campo1} == “”)
{
sc_error_message(‘Campo1 não pode ficar em branco’);
sc_error_exit();
}
else if ({campo2} == “”)
{
sc_error_message(‘Campo2 não pode ficar em branco’);
sc_error_exit();
}
else if ({campo3} == “”)
{
sc_error_message(‘Campo3 não pode ficar em branco’);
sc_error_exit();
}

dai quando da erro ao invés de parar tudo e ainda manter os campos ocultos o form volta a exibir todos campos ocultos

Bom João, pra iniciar eu mudaria aqui, ou seja, trocaria o else if por apenas if:

if ({campo1} == “”)
{
sc_error_message(‘Campo1 não pode ficar em branco’);
sc_error_exit();
}
if ({campo2} == “”)
{
sc_error_message(‘Campo2 não pode ficar em branco’);
sc_error_exit();
}

Outro detalhe… vc disse evento ajax onchange. De qual campo? Vc tem que fazer algo do tipo (isso para o campo 3):

if (!empty({campo_onChange}) && empty({campo3})){
    sc_error_message(‘Campo3 não pode ficar em branco’);
    sc_error_exit();
}

Seria +/- assim.

Espero ter ajudado

esqueci esse detalhe, o evento ajax onchange é no campo1 ao iniciar o form ele exibi apenas o campo 1, dai ao selecionar o valor do campo1 o evento ajax é executado é passa a exibir o campo1 e o campo2 e assim vai seguindo conforme o usuario vai preenchendo nesse caso o avento ajax ta funcionando, to encontrando dificuldades na validação quando o campo o campo estiver em branco.

João. Mas caso esteja fazendo da forma abaixo, está errado. Pq vc tem que verificar se o campo 1 está vazio pra depois, se este não estiver, verificar se o campo 3 está vazio e ai apresentar ou não a mensagem.

Por via de regra, o validar dados quando surgem alertas força quase um ‘reload’ da pagina, logo, vc tem que ter as condições de ocultar/exibir desde o evento onLoad… eu sempre crio metodos para mostrar ou nao os campos que quero e chamo isso no onLoad e depois nos eventos ajax de cada campo a depender da necessidade, então vc tem que vir ‘desde cima’ com as consistencias.

Voltando para agradecer e dizer que a solução era simples como os colegas comentaram, eu tinha que vir com o mesmo padrão das validações nós campos exibidos desde o início do form.
Obrigado.

1 Curtida