Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola a todos
estou com um problema em uma função que verifica se já existe um rg cadastrado no banco
$.ck_rgv_exist = function () {
var rg_visit = $('#rg_visit').val();
var old_rg_visit = $('#old_rg_visit').val();
rg_visit = rg_visit.replace(/[.-]/g,'');
old_rg_visit = old_rg_visit.replace(/[.-]/g,'');
var retorno = false;
if ( ( rg_visit != old_rg_visit ) && ( rg_visit != 0 && rg_visit != '' && rg_visit != undefined ) ){
$.ajax({
type : "POST",
cache : false,
url : href_combo,
data : {tipo: 'rgv', rgv: rg_visit},
success: function( data ){
alert( data );
if ( data == 1 ) {
retorno = true;
} // /if ( response == 1 ) {
} // /success: function( response ){
});// /$.ajax({
} // /if ( ( matr_val != old_matr_val ) && ( matr_val != 0 && matr_val != '' && matr_val != undefined ) ){
return retorno
} // /$.ck_rgv_exist = function () {
o detalhe é que essa função deveria retornar true caso o rg exista ou false caso não
mas retorna false sempre
alert( "retorno da função " + $.ck_rgv_exist() ); // false sempre
onde posso estar errando???
obs ja verifiquei a conexão com o banco e a página que faz a busca e está tudo correto.
obrigado
obrigado pela ajuda
mas nao deu certo, ou fiz errado
veja
$.ck_rgv_exist = function () {
var rg_visit = $('#rg_visit').val();
var old_rg_visit = $('#old_rg_visit').val();
rg_visit = rg_visit.replace(/[.-]/g,'');
old_rg_visit = old_rg_visit.replace(/[.-]/g,'');
var retorno = false;
var reqAjax = '';
if ( ( rg_visit != old_rg_visit ) && ( rg_visit != 0 && rg_visit != '' && rg_visit != undefined ) ){
reqAjax = $.ajax({
type : "POST",
cache : false,
url : href_combo,
data : {tipo: 'rgv', rgv: rg_visit}
});// /$.ajax({
} // /if ( ( matr_val != old_matr_val )...
$.when( reqAjax ).then(function( response ){
if ( response == 1 ) {
retorno = true;
} // /if ( response == 1 ) {
});
return retorno
} // /$.ck_rgv_exist = function () {
agora estive pensando, e se usar a opção async: false no ajax??? pode ser feito assim???
obrigado
sim, se você usar modo sincrono o return "funcionará".
teste :lol:
realmente
funcionou!!!
mas o que eu tinha feito de errado com o deferred??
no mais ta resolvido!!!
obrigado!!!
você nunca vai conseguir usar return, por causa do assincronismo do ajax.
veja sobre o objeto deferred:
http://www.maujor.com/blog/2011/02/01/o-objeto-deferred-da-jquery-1-5/