[RESOLVIDO] problemas com os eventos onBeforeUpdate, onValidateFailure, ..

Boa tarde,

Estou tendo sérios problemas com esses eventos.

Existe uma função que faz uma validação geral da tela, eu a chamo de “valida()”, a primeira vez que faço sua utilização é no evento onLoad, e ela agi corretamente.

Porém quando vou salvar as alterações dos valores da tela faço uma outra verificação no evento onBeforeUpdate que também está funcionando perfeitamente, porém os erros começam a partir disso.

A função “valida()” foi feita para funcionar nos eventos onValidateFailure e onValidateSuccess também. Porém quando um erro é lançado no evento onBeforeUpdate( uso a função sc_error_message para lançar o erro) é como se a função “valida()” que está nos eventos onValidateFailure e onValidateSuccess executasse antes do onBeforeUpdate e dessa forma o erro some (é corrgido pela função “valida()”) e passa pela verificação.
Digo que é como se a função “valida()” executasse antes pois quando comento essa função do código o erro volta a funcionar perfeitamente e é lançado para o usuário.

Avançando nos meus testes descobri que mesmo quando eu lanço o erro no evento onBeforeUpdate com a macro sc_error_message o evento chamado é o onValidateSuccess e não o onValidateFailure.
Dessa forma tentei levar o código da função “valida()” para este evento, mas dessa forma ele não executa corretamente, ela entra nas condições corretas, mas não está fazendo as alterações necessárias na tela, o que não faz sentido pois o código foi copiado da função “valida()” que funciona perfeitamente no evento onLoad.

Bom gostaria de saber se alguém já teve problemas com essas funções, e também gostaria de mais informações desses eventos, se eles são síncronos ou assíncronos, se a macro sc_error_message() realmente indica um erro ou apenas mostra uma string para o usuário.

Se alguém tiver mais informações sobre esses eventos ou possíveis explicações para esses fatos serei grato.

Outra dúvida que fiquei, quando estava fazendo essa tela é: como é o real funcionamento do evento ajax onChange.

Pois estou utilizando esse evento em um campo input, porém o evento só é lançado quando o foco do campo é retirado, dai que ocorre a verificação do valor do campo.

Isso é normal deste evento? eu gostaria de um evento realmente onchange vocês saberiam como resolver esse problema do foco?

Você está confundindo o evento Ajax OnChange com o OnBlur.

Olá Kleyber,

Eu verifiquei e esse é o funcionamente normal do evento onChange, segundo o suporte da NetMake.

O problema foi corrigido mudando todas as verificações que fazia no evento onBeforeUpdate para o evento onValidate.