saludos amigos les explico, tengo una funcion en javascript que me carga un formulario con datos tomados de una BD usando ajax funcion fino trayendose todos los valores y los muestra pero hay un valor que debo calcular con algunos de los valores que se esta trayendo ejemplo calculo el monto total a pagar y calculo los abonos hecho si resto montototal-abonos=deuda_actual bueno la resta no la hace por que cuando hago la solicitud de la operacion aritmetica es como q si aun el campo text no tiene la informacion sin embargo al finalizar el proceso veo que los campos efectivamente tienen la informacion, e hecho unos alert y aveces funciona pero tengo q meterle los alert ejemplo digo alert(document.getelementid('monto_total').value) y me muestra 0 pero al ver la pagina tiene 2800. aqui dejo la funcion yo creo q lo q ocurre es q estoy tratando de usar los datos de ese text y aun no lo tiene asignado.
pense en usar una funcion como sleep pero buscando dicen q use settimeout pero lei q ella no detiene la ejucion (es asincrona) imagino que no me servira para tratar de que se le de chance para poder leer el valor que al final se deberia ver
aqui la funcion
Código:
function carga_datos_contrato(form,form1)
{
// hay que habiitar el div oculto y cargar separando por coma lo que devuelve la funcion
if(form.contratos.value!="0"){
calcula_monto_abonado(form.contratos.value);
var ajax=nuevoAjax();
ajax.open("GET", "funcion_ajax.php?ncontrato="+form.contratos.value+"&sw=5", true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
var respuesta=ajax.responseText;
document.getElementById('cubre_form_pago').style.visibility='visible';
var elem = respuesta.split(',');
form.num_contrato.value=form.numero_contrato.value=elem[2];
form.tipo_contrato.value=elem[0];
tonumberphp(elem[1],form.monto);
form.fecha.value=tofechaphp(elem[3]);
form.contribuyente.value=elem[4];
tonumberphp(elem[5],form.gastos_adm);
//debo .calcular el monto a pagar
var monto_total=parseFloat(calcula_impuesto_apagar(elem[1],form.base_calculo.value,form.tarifa_ut.value))+parseFloat(elem[5]);
tonumberphp(monto_total,form.total_a_pagar);
var monto_total=tonumbermysql(document.getElementById('total_a_pagar').value);
var monto_deuda=monto_total-monto_abonado;
tonumberphp(monto_deuda,document.getElementById('deuda'));// aqui cargo el monto de la deuda al campo text deuda
// alert(document.getElementById('abonado').value);
}
}
ajax.send(null);
//var monto_abonado2=document.getElementById('abonado').value;
///var monto_total2=document.getElementById('total_a_pagar').value;
//alert(document.getElementById('abonado').value+" monto total"+document.getElementById('total_a_pagar').value);
}else{
document.getElementById('cubre_form_pago').style.visibility='hidden';
}
}