Problema com foco em campo ao clicar em botão de mensagem (JavaScript)

Pessoal, Tudo bem?

Estou enfrentando um problema com foco em campo usando JavaScript e não estou conseguindo resolver.

Tenho uma mensagem exibida ao usuário com um botão CORRIJA AGORA. A ideia é que somente após o usuário clicar no botão da mensagem, o foco seja direcionado para um campo específico do formulário.

Porém, o comportamento atual está assim:

  • O foco já vai para o campo antes da ação do usuário
  • Quando o usuário clica no botão da mensagem, o campo perde o foco
  • Ou seja, o foco acontece no momento errado

O comportamento esperado é:

  • O foco NÃO ocorrer automaticamente
  • O foco só deve ir para o campo após o clique no botão da mensagem

Já tentei ajustar a ordem do código, usar eventos de clique e controle de foco, mas sem sucesso. Sempre que a mensagem aparece, o foco acaba indo antes para o campo.

Segue abaixo o código que estou utilizando para referência:

Evento onValidate
// 1. Variáveis de Controle
$msg = “”;
$campo_foco = “”;

// 2. Validação
if (trim({PRO_CODIGO}) == “”) {
$msg = “A Descrição do Produto é obrigatória.”;
$campo_foco = “PRO_CODIGO”;
}
elseif (trim({PRO_QUANTIDADE}) == “” || {PRO_QUANTIDADE} <= 0) {
$msg = “Informe uma Quantidade válida.”;
$campo_foco = “PRO_QUANTIDADE”;
}
elseif (trim({PRO_VENDA}) == “” || {PRO_VENDA} <= 0) {
$msg = “O Valor de Venda deve ser maior que zero.”;
$campo_foco = “PRO_VENDA”;
}
elseif (trim({IOR_TOTAL}) == “” || {IOR_TOTAL} <= 0) {
$msg = “O Total informado é inválido.”;
$campo_foco = “IOR_TOTAL”;
}

// 3. Exibição com Botão Personalizado e Foco Forçado
if ($msg != “”) {

$params = array(
    'title' => "Verifique os Dados",
    'type'  => "error",
    'confirmButtonText' => "CORRIJA AGORA", // Texto que você pediu
);

// Dispara o alerta visual
sc_alert($msg, $params);

// Injeta o foco via JavaScript (Executa após o clique no botão)
sc_ajax_javascript('nm_set_focus', array($campo_foco));

// Bloqueia a gravação no banco de dados
sc_error_message(" "); 
sc_error_exit();

}

Vai te que realizar a mensagem e o foco tudo manualmente com jquery, js.