Ir para conteúdo

POWERED BY:

Arquivado

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

DaniloTec

[Resolvido] Rotorno dentro da função get do Jquery

Recommended Posts

boa tarde.

 

Fiz uma função que execute o método $.get do Jquery. No postback do Jquery eu retorno true ou false dependendo do meu valor.

O problema é que não está retornando o valor correto. Segue a função:

 

function VerificaLoginCadastrado(descLogin) {
       $.get(AntiCache('FormUsuario.aspx')
       , { bitAjax: true, descAcao: 'VerificaLogin', descLogin: descLogin }
       , function (VerificaLogin) {
           if (VerificaLogin > 0) {
               $('#txtLogin').after('<span id="erroLoginCadastrado" class="h6">login já cadastrado<span>');
               return false;
           } else {
               return true;
           }
       });
   }

 

Eu executo a função e ela me retorna undefined. Ele entra no postback, verifica o valor do retorno VerificaLogin e não returna o valor pedido.

 

Algué sabe o que ocorre?

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

 

Eu executo a função e ela me retorna undefined.

qual o valor do argumento VerificaLogin ?

o arquivo: FormUsuario.aspx precisa dar output doq você quer receber nessa variavel.

 

 

 

 

o undefined como retorno dessa tua função, é por causa do assincronismo do ajax.

ou você trabalha com callbacks, ou então usa o objeto defered.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O valor que VerificaLogin returna é 2.

Ele entra na função e executa todos os comandos que eu colocar. Coloquei um alert em cada decisão do if e ele executa todos os alerts perfeitamente. Só não retorna o true ou false que eu preciso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso ocorre pelo motivo que citei.

 

veja o restante da minha resposta:

o undefined como retorno dessa tua função, é por causa do assincronismo do ajax.

ou você trabalha com callbacks, ou então usa o objeto defered.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pesquisou sobre?

 

a outra alternativa que eu não tinha falado ainda, seria você trabalhar com ajax sincrono

 

 

 

Callbacks:

http://www.google.com.br/search?q=callback+javascript&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a

 

Deferred:

http://api.jquery.com/category/deferred-object/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu achava que o próprio VerificaLogin era o callback da função.

Uma coisa muito estranha é que tenho a mesma função que verifica CPF e os retornos funcionam. A função é quase identica, só muda de VerificaLogin para VerificaCPF.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive que resolver outras coisas e voltei.

Fiz a função da seguinte forma para me retornar o valor quando estiver pronta:

function VerificaLoginCadastrado(descLogin) {
       var bitValido = false;
       $.get(AntiCache('FormUsuario.aspx')
       , { bitAjax: true, descAcao: 'VerificaLogin', descLogin: descLogin }
       , function (VerificaLogin) {
           if (VerificaLogin == 0) {
               bitValido = true;
           }
       }).done(function() { return bitValido; });
   }

 

Se eu coloco o alert dentro da função done funciona, mas se eu chamo a função dentro de um alert continua dando undefined.

Não é assim que forço o postback?

 

Vlw!

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.