Ir para conteúdo

POWERED BY:

Arquivado

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

danielabdala

[Resolvido] Problemas com retorno do jQuery.ajax, da undefined

Recommended Posts

Ola pessoal,

 

Estou com o seguinte problema, não estou conseguindo receber o retorno da funcão ajax. Pelos teste q eu fiz ele calcula o valor corretamente, e da true ou false conforme for, mas ao receber o retorno dessa função vem undefined.

 

segue a funcao

function VerificaValor2SM(value) {
   jQuery.ajax({
       type: "GET",
       url: "/RequerenteBeneficiario/ValorSalarioMinimo/", //URL de destino    
       async: false,
       dataType: "json", //Tipo de Retorno
       error: function () {
           alert("Erro ao carregar dados.");
       },
       success: function (json) {
           retorno = false;
           var valorrenda = $("#ValorRenda").val();
           if (valorrenda != null) {
               valorrenda = valorrenda.replace("R$ ", "");
               valorrenda = valorrenda.replace(".", "");
               valorrenda = valorrenda.replace(",", ".");
               valorrenda = valorrenda * 1;
               value = json * 2;
               if (valorrenda < value + 1) {

                   retorno = true;
               }
               else {

                   retorno = false;
               }

           }
           alert(retorno);
           return retorno;
       },
       beforeSend: function () {
           $("#carregando").css("display", "block");
       },
       complete: function () {
           $("#carregando").css("display", "none");
       }
   });
}

chamando a funcão para mostrar o valor usando uma alert, tipo alert(VerificaValor2SM(value)) -> undefined  ???

alguém poderia ajudar

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso, ou você faz a requisição SINCRONA, ou então usa o objeto Deferred

http://wbruno.com.br/2012/01/23/exemplo-de-uso-jquery-deferred-simples/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro William não entendi essa implimentação com deferred. Usando o script q postei, você poderia me explicar melhor

como ficaria? Esta meio confuso pra mim ainda!

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acontece o seguinte amigo:

 

qndo você envia um ajax, por padrão, ele roda em modo assincrono, ou seja, vai ao servidor, e volta, mas não "diz" para o restante do script, aguardar ele voltar.

E o restante continua executando, independente do retorno.

 

Por isso que você não consegue pegar o retorno.

O método Deferred do jQuery "corrije" isso. Outra solução, seria usar a requisição em modo sincrono(ai o restante do script aguardaria o retorno).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, entendi bem sua explicação, só q ja tinha acrescentado no jQuery.ajax a opçao async = false, e mesmo assim o valor de retorno da função continua sendo undefined. O deferred não usei ainda pq nao entendi a implementação q você me passou. Se puder me mostrar como ficaria o script com o deferred ajudaria muito.

 

Obrigadão cara!

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.