Tengo un simple bucle, dentro de este bucle tengo un par de condiciones, les copio el codigo y les sigo contando el problema:
Código Javascript:
Ver original
function checkTa(enviarCO){ var sumError =''; var n = 1; for(n; n<=8; n++){ var asdf = "talonario_" + n; if( $("#" + asdf).val() != ''){ $.post( 'ajax/talonario.php', {talonario:$("#" + asdf).val()}, function(data){ if(data.error!='ok'){ if(data.proveedor==0 || data.proveedor==proveedor){ if(!enviarCO){ document.rango.submit(); } }else{ sumError ="El talonario de la fila: "+ n +" fue asignado al proveedor:"+data.proveedor+".\r\n"; nextfield = asdf; $('#error').text(sumError); $('#error').show('slow'); setTimeout(function(){ $(".error").hide('slow'); },5000); $("#" + asdf).select(); // alert(n); } }else{ sumError ="El talonario de la fila "+ n +" debe ser cargado previamente.\r\n"; nextfield = asdf; $('#error').text(sumError); $('#error').show('slow'); setTimeout(function(){ $(".error").hide('slow'); },5000); $("#" + asdf).select(); } }, 'json' ) } } }
En la primera condicion si el campo "talonario_"+n esta basio es ignorado. Caso contrario por JSON y AJAX pido unos datos.
Con los datos recibidos en function(data)
realizo una segunda condicion: si data.error != "ok" realizo la tercer condicion para enviar el form o caso contrario emito un error en el cual indico la FILA ( variable n ).
Si nos detenmos AK, y suponemos que n=1 las condiciones son:
para la primera y segunda true y la tercera false
Me aparece el error:
Cita:
cuando tendria que decir:"El talonario de la fila: 9 fue asignado al proveedor: 474.\r\n"
Cita:
Tambien setea la variable nextfield="talonario_8""El talonario de la fila: 1 fue asignado al proveedor: 474.\r\n"
cuando tendia que setear nextfield="talonario_1"
ya que talonario_[2-8] estan basio y no pasan la primer condicion.
Ademas no se de donde saca el 9 si el for condiciona n<=8.
Viendo la vista previa, es posible que el bucle continue sin esperar la respuesta JSON?