Hola gustavodiazs, esto es un problema que nos ocurre a los que programamos con ajax, desde novatos hasta los mas experimentados, resulta que las funciones de ajax se ejecuta de forma
asincrona es decir, que rompen el hilo de ejecución y se ejecutan independiente del flujo normal de ejecución esto hace que tu codigo de retorno en la función fnGetVal se ejecute antes de que recibas los datos desde el servidor a traves de ajax, te explico:
Código Javascript
:
Ver originalfunction fnGetVal(txtUrl){
var jsDescripcion = '';
$.get(txtUrl, function(data){
alert("Dato cargado: " + data);
jsDescripcion = data;
});
/*este codigo se ejecuta antes que:
alert("Dato cargado: " + data);
jsDescripcion = data;
*/
return jsDescripcion;
}
por esto es que la función jQuery.get recibe un parámetro con la función a ajecutar al momento que la función reciba los datos del servidor...
pero en el caso de que necesites el este flujo, puedes hacer a un lado la función jQuery.get y usar la función jQuery.ajax a la cual le puedes pasar un parametro
"async" para decirle que no haga la consulta asincronamente sino sincronamente, el codigo quedaría asi:
Código Javascript
:
Ver originalfunction fnGetVal(txtUrl){
var jsDescripcion = '';
$.ajax({
url: txtUrl,
type: 'GET',
async: false,
success: function(data){
alert("Dato cargado: " + data);
jsDescripcion = data;
}
});
return jsDescripcion;
}
de esta forma si estarias forzando a que el código siga el flujo normal.
Saludos
________________
Argenis Fontalvo
http://argenisfontalvo.brandyourself.com