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
Post a Comment