JavaScript在本地测试时有效,但在服务器上访问时无效

JavaScript在本地测试时有效,但在服务器上访问时无效,javascript,html,Javascript,Html,在我的web开发课程开始之前,我正在练习一个简单的兴趣计算器,并在家里把它放在raspberry pi上。每当我在我的机器上本地测试JS时,它都能正常工作,但是一旦我上传了它,JS就不再工作了 Chrome中的Sources窗口帮助我发现monthsFlag和yearsFlag没有定义,因此破坏了我的功能。当我在我的机器上本地测试文件时,不会发生这种情况 var dollarfag=false; var poundFlag=假; var Eurofag=假; var yearsFlag=tru

在我的web开发课程开始之前,我正在练习一个简单的兴趣计算器,并在家里把它放在raspberry pi上。每当我在我的机器上本地测试JS时,它都能正常工作,但是一旦我上传了它,JS就不再工作了

Chrome中的Sources窗口帮助我发现monthsFlag和yearsFlag没有定义,因此破坏了我的功能。当我在我的机器上本地测试文件时,不会发生这种情况

var dollarfag=false;
var poundFlag=假;
var Eurofag=假;
var yearsFlag=true;
var monthsFlag=false;
函数currencyCheck(){
if(document.getElementById(“currency select”).value=='dollar'){dollarfag=true};
if(document.getElementById(“currency select”).value='pound'){poundFlag=true};
if(document.getElementById(“currency select”).value=='euro'){euroFlag=true};
}
函数timeCheck(){
if(document.getElementById(“期间选择”).value==“月”){
monthsFlag=true;
yearsFlag=false;
};
}
函数计算(){
var principal=document.getElementById(“principal”).value;
var rate=document.getElementById(“rate”).value;
var period=document.getElementById(“period”).value;
比率=(比率*0.01)/12;
if(年份滞后){
风险值月份=期间*12;
var利息=本金*利率*月份;
var总额=(本金+利息);
document.getElementById(“利息总额”)。值=利息;
document.getElementById(“总计”).value=(总计);
}
else if(月旗){
var利息=本金*利率*期间;
var总额=(本金+利息);
document.getElementById(“利息总额”)。值=利息;
document.getElementById(“总计”).value=(总计);
var yearsFlag=true;
var monthsFlag=false;
}
}

选择货币:
美元
英镑
欧元
本金金额:
年利率(百分比):
期间:
年
月
算计
清楚的
利息金额:

总金额:
可能与最后两行相关,在这两行中重新创建变量(或类似内容。查找其他位置)。您在顶部定义了变量,然后在底部再次定义

var yearsFlag =true;
var monthsFlag =false;
您不需要第二次使用
var


只是想一想。

我现在知道,其他变量也会发生这种情况。在JS顶部和/或函数顶部设置一次VAR。啊哈……我甚至没有意识到我这么做了!我确信这些都是局部变量,它们覆盖了函数外部的全局变量。非常感谢。我刚测试了一下,这个就修好了。