【发布时间】:2013-05-21 16:33:03
【问题描述】:
我有一个运行良好的 Javascript 函数,直到我注释掉/或删除 alert() 行。它会计算最多 30 个字段的总和(如果它们存在并且是否有值)。
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 then check if it has a value
var nettowert=document.getElementById('Netto'+x).value;
//if it has a value add values to nettosumme and bruttosumme
if (nettowert) {
nettosumme=parseFloat(nettosumme)+parseFloat(document.getElementById('Netto'+x).value);
//IF I COMMENT THIS OUT, I get a NAN in my 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);
}
即使删除了alert() 行,我如何使它工作?
【问题讨论】:
-
你能在 jsFiddle.net 的例子中重现这个吗?
-
确保您的调试器中没有设置任何断点。
-
您确定该值在执行时就在那里,而不是在执行之后一点点?这似乎有效,因为您使用
alert()命令延迟了其余的执行。 -
你是在文档发送完ready事件后调用这个函数吗?
-
@MofX 您对问题的编辑过于激进。我已经回滚了。您如何将源代码添加到问题中?我假设是真诚的,但你应该添加一个答案而不是改变问题..(我现在明白了,你已经做到了)
标签: javascript jquery ajax dom