(这是我的第一个javascript项目,所以解决方案对于经验丰富的人来说可能是显而易见的,但它不适合我!)
我正在尝试编写三个下拉列表中的输入。背景是帮助人们评估他们是否符合残疾人援助的标准。
根据他们走多远,他们得分:12是最大值。但是,如果一个人无法站立,他们会自动得到12分。另外,取决于他们是否需要任何辅助工具和改编可以影响得分。
因此,意图是拥有if-then-else功能(如果要响应无法站立的人,否则是否根据步行距离创建输出并需要进行调整,以及纯粹基于步行距离创建输出
如果直到我包含适应性下降,一切正常。问题是要做到这一点,我需要根据“步行距离”返回的值创建一个变量。功能。此时控制台返回' Uncaught TypeError:getdistancescore不是函数'。编码没有问题识别getdistancescore直到我这样做 这里是编码:(导致问题的行被标记为" //这是问题"
//stand-yes-no
var standYN =[];
standYN["mp1"]=0;
standYN["mp2"]=1;
function getstandYN(){
var standscore=0;
var theForm = document.forms["mobilityform"];
var standscore = theForm.elements["mobp1"];
getstandYN = standYN[standscore.value];
return getstandYN;
}
//end standyes-no
//distances
var distances = [];
distances["mp3"]=0;
distances["mp4"]=4;
distances["mp5"]=8;
distances["mp6"]=12;
distances["mp7"]=12;
//note mp5 could be 10
function getdistancescore(){
var distancescore=0;
var theForm = document.forms["mobilityform"];
var distancescore = theForm.elements["mobp2"];
getdistancescore = distances[distancescore.value];
return getdistancescore;
}
//end distances
//needs aid or appliance yes-no
var aiappYN =[];
aiappYN["mp1"]=0;
aiappYN["mp2"]=1;
function getaiappYN(){
var aiappscore=0;
var theForm = document.forms["mobilityform"];
var aiappscore = theForm.elements["mobp3"];
getaiappYN = aiappYN[aiappscore.value];
return getaiappYN;
}
//end needs aids or appliance yes-no
//CALCULATION STARTS
var ai_appscore = getaiappYN()
var standingscore = getstandYN();
//THIS IS THE PROBLEM
var walkingdistance = getdistancescore();
//END THIS IS THE PROBLEM
if (standingscore == 1){
var actualscore = 12
}
//extra 'else if' to go here
else {
var actualscore = getdistancescore();
}
//CALCULATION ENDS
//display results
var divobj = document.getElementById("score");
divobj.innerHTML="Total Score "+actualscore;
var divobj = document.getElementById("check");
divobj.innerHTML="Check "+standingscore;
}
道歉,如果我没有解释得这么好,并且问题的长度。我在各种帮助网站上搜索过但无法找到解释发生了什么的内容
答案 0 :(得分:2)
你知道你在getstandYN
做了什么吗?
function getstandYN(){
var standscore=0;
var theForm = document.forms["mobilityform"];
var standscore = theForm.elements["mobp1"];
getstandYN = standYN[standscore.value];
return getstandYN;
}
getstandYN
是一个函数,然后在函数中间将其重新分配给standYN[standsore.value]
请注意这里发生的事情
function foo() {
foo = 5;
return foo;
}
foo(); // 5
foo(); // Uncaught TypeError: foo is not a function
console.log(foo); // "5"