jquery - Javascript does not work without alert() -


i have javascript function works until comment out/or delete alert() line. calculates sum of 30 fields if exist , if have value.

html:

<input type="text" onblur="calculatenettobrutto(1);"> 

javascript:

function calculatenettobrutto(n) {   var feldnummer=n;   var nettowert,bruttowert;   var nettosumme, bruttosumme,neuenettosumme,neuebruttosumme;   var wertfuer='mehrwertsteuersatz'   //mehrwertsteuer auslesen   var datastring = 'name='+wertfuer;   var thisobject = this;   this.wert=$.ajax({     type: "post",     url: "ajax_get_einstellungen.php",     data: datastring,     cache: false,     success: function(wert) {       nettowert = document.getelementbyid('netto'+feldnummer).value;       bruttowert = parsefloat(nettowert) * wert;       document.getelementbyid('brutto'+feldnummer).value=parsefloat(bruttowert);       return wert;     }   });    var nettosumme=0,bruttosumme=0, x=1;   while (x < 30) {   var feldname='netto'+x;   if ( document.getelementbyid('netto'+x) ) {     //if field netto+x exist check if has value     var nettowert=document.getelementbyid('netto'+x).value;     //if has value add values nettosumme , bruttosumme     if (nettowert) {       nettosumme=parsefloat(nettosumme)+parsefloat(document.getelementbyid('netto'+x).value);       //if comment out, nan in bruttosumme column       alert(nettosumme);       bruttosumme=parsefloat(bruttosumme)+parsefloat(document.getelementbyid('brutto'+x).value);     }   }   x++; } document.getelementbyid('nettosumme').value=parsefloat(nettosumme); document.getelementbyid('bruttosumme').value=parsefloat(bruttosumme); 

}

how make work if alert() line removed?

the problem asynchronous ajax request:

<input type="text" onblur="calculatenettobrutto(1)" /> 

this calls calculatenettobrutto users leaves field. function called:

var feldnummer = 1; this.wert=$.ajax({    ...    success: function(wert) {       ...       nettowert = document.getelementbyid('netto'+feldnummer).value;       bruttowert = parsefloat(nettowert) * wert;       document.getelementbyid('brutto'+feldnummer).value=parsefloat(bruttowert);    } });  //alert("wait little"); document.getelementbyid('brutto'+feldnummer).value <-- bang 

the problem here following: function defined within ajax() called when result of ajax call returned server, code after ajax() executed immediately. try value field before set.

while alert window visible, script suspended , ajax call returns , executes "success" code setting value of "brutto...". after close alert, code executed , "brutto..." has value.

the easiest solution move sum calculation function "success" function


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -