Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ronaldomarcos

Interromper sequencia else if com retorno de função

Recommended Posts

Boa noite, estou validando um formulário utilizando uma função antes de submetê-la.

Eu tenho outra função que testa a existência de um email no Banco ainda no preenchimento, que dá um aviso, mas continua o cadastro. Ela usa httprequest e retorna 1 para não existente e 0 (zero) para já existente.

Na hora de submeter eu faço a validação e volta também a verificar se foi informado outro email válido se já existia, contudo, ele sabe que retornou zero, mas continua a sequencia else if, indo para a função que grava.

 

}else if (testaEmail() == 0) {
escrevemensagem("O email já utilizado, tente recuperar a senha ou utilizar outro email.");

}else {

submeteForm();

}

 

 

Já tentei usando tanto httprequest sincrono como assincrono na validação do email, o resultado é o mesmo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se é exatamente isso que você procura mas poderia fazer algo assim

   }else if (testaEmail() == 0) {
        escrevemensagem("O email já utilizado, tente recuperar a senha ou utilizar outro email.");
        return false;
   }else {
     submeteForm();
     return true;
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius, desconheço função exit() em javascript.

Meu formulário chama uma função (htttprequest) para verficiar se existe um email, se existe retorna 0 se não existe retorna 1.

Quando eu chamo uma função de validação do formulário, essa função chama também a função que verifica o email, e mesmo retornando 0 (que já existe) ele não interrompe o else if (usando sincrono ou não na função com httprequest), e return também não interrompe.

}else if (testaEmail() == 0) {
escrevemensagem("O email já utilizado, tente recuperar a senha ou utilizar outro email.");

}else {

submeteForm();

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala ronaldo, boa tarde, sei que o Vinicius ja está te ajudando mas creio que seu problema esteja no fluxo de decição e não nos returnos, você poderia colocar o bloco If inteiro para nós darmos uma avaliada ?

if(){
} else if() {
} else {
}

Outra coisa, o problema tbm pode está com o seu formulário, precisamos de mais detalhes, de como está seu script e seu form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, verdade, eu tava dormindo ontem eu acho, confundi tudo. xD

 

Foi mal.

 

 

Enfim, analisando agora, também aposto que o problema está no fluxo do código. Pode mostar mais linhas para analisarmos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, mas depois de alguns testes e uma estudada descobri que não existe possibilidade de pegar o response (assincrono ou sincrono) de um httprequest.

Eu não posso setar uma variável com o retorno justamente porque o response está numa subfunção e numa matriz, e não posso criar outro return pra uma variável para poder utilizá-la na comparação na função que valida meu formulário.

A solução foi fazer uma função chamar a outra, e só no final fazer a validação de campos comuns. Isto é, não chamar uma função dentro de outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.