Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-ReferenceError:未定义agevalue_Javascript_Html - Fatal编程技术网

Javascript-ReferenceError:未定义agevalue

Javascript-ReferenceError:未定义agevalue,javascript,html,Javascript,Html,我对我的代码有点困惑,让我解释一下: 除了最后一段代码外,其他一切都正常工作,我很难理解为什么? 当我尝试我的代码时,调试器告诉我 “ReferenceError:未定义agevalue” 我明白这意味着什么,但我不明白为什么… 让我快速解释一下,如果不明显,我想要什么:我有一个附加到Javascript的DOM,我想将大于或等于10的值/值(dietvalue、age值、familyvalue…)导入到一个段落中 由于我是一名学生,这是我考试的一部分,我并不期望得到准确的答案,而是更多的线索或

我对我的代码有点困惑,让我解释一下:

除了最后一段代码外,其他一切都正常工作,我很难理解为什么?
当我尝试我的代码时,调试器告诉我

“ReferenceError:未定义agevalue”

我明白这意味着什么,但我不明白为什么…
让我快速解释一下,如果不明显,我想要什么:我有一个附加到Javascript的DOM,我想将大于或等于10的值/值(dietvalue、age值、familyvalue…)导入到一个段落中

由于我是一名学生,这是我考试的一部分,我并不期望得到准确的答案,而是更多的线索或解决方法。顺便说一句,我知道我的代码可以改进,但我真的想在开始改进之前完成它

谢谢你的帮助

window.onload=changeElement;

function changeElement() { 
   document.getElementById("btn1").onclick = myFunction
}


function myFunction() {
        var agevalue;
        var radiobuttons = document.getElementsByName("age");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 agevalue = radiobuttons[i].value;
             }
         }                  

        var bmivalue;
        var radiobuttons = document.getElementsByName("bmi");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 bmivalue = radiobuttons[i].value;
             }
         }

        var familyvalue;
        var radiobuttons = document.getElementsByName("family background");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 familyvalue = radiobuttons[i].value;
             }
         }

        var dietvalue;
        var radiobuttons = document.getElementsByName("diet");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 dietvalue = radiobuttons[i].value;
             }
         }
         var total = parseInt(agevalue) + parseInt(bmivalue) + parseInt(familyvalue) + parseInt(dietvalue);

         if (total <=15){
         document.getElementById("results").innerHTML= "Result 1"; }

         if (total >=16 && total <=25){
         document.getElementById("results").innerHTML= "Result 2"; }

         if (total >25){
         document.getElementById("results").innerHTML= "Result 3" ; } 
                    }   


     if (parseInt(agevalue) >= 10 || parseInt(bmivalue) >= 10 || parseInt(familyvalue) >= 10 || parseInt(dietvalue) >= 10);
     {
        document.getElementById("risks").innerHTML= "Your risks are: "

     }
window.onload=changelement;
函数changelement(){
document.getElementById(“btn1”).onclick=myFunction
}
函数myFunction(){
风险价值;
var radiobuttons=document.getElementsByName(“年龄”);
对于(var i=0;i=10 | | parseInt(bmivalue)>=10 | | parseInt(familyvalue)>=10 | | parseInt(dietvalue)>=10);
{
document.getElementById(“风险”).innerHTML=“您的风险是:”
}

如果条件不在定义变量
agevalue
myFunction
范围内,您的上一个
。尝试将其放入
myfunction
中并选中,否则必须在此方法之外声明该变量(在全局上下文中)

i、 e

函数myFunction(){
风险价值;
var radiobuttons=document.getElementsByName(“年龄”);
对于(var i=0;i=10 | | parseInt(bmivalue)>=10 | | parseInt(familyvalue)>=10 | | parseInt(dietvalue)>=10);
{
document.getElementById(“风险”).innerHTML=“您的风险是:”
}
}   

您在
for
循环中定义
agevalue

var agevalue;
var radiobuttons = document.getElementsByName("age");
 for (var i = 0; i < radiobuttons.length; i++) {

     if (radiobuttons[i].checked == true) {
         agevalue = radiobuttons[i].value;
     }
 }
如果你仔细检查一下 你得到


jshint是一个有用的工具。

欢迎使用SO!你会做小提琴吗?这将更容易诊断和帮助您。通过查看代码1,可能的问题是,如果您没有选中组的任何单选按钮,该值将保持
undefined
,并且
parseInt
将抛出错误。还应始终使用不同的变量名。您已经多次定义了
单选按钮
请尝试将您的代码减少到不起作用的程度。这样做,您可能会发现并修复错误。另外,
调试器
和所有调试工具都是您的朋友!你知道错误发生在哪一行吗?该错误可能很容易,因为没有选中年龄复选框,然后将不会分配给
agevalue
,因为没有设置默认值。重要提示:您还应始终将
parseInt
函数的第二个参数10指定为
parseInt(x,10)
otherwize它会将您的输入视为十六进制,这意味着
字符串“10”
将变成
数字16
(代码中没有那么明显的错误)参考:您在底部附近的“结果3”上有一个额外的
}
。同样的好工具+1
var agevalue;
var radiobuttons = document.getElementsByName("age");
 for (var i = 0; i < radiobuttons.length; i++) {

     if (radiobuttons[i].checked == true) {
         agevalue = radiobuttons[i].value;
     }
 }
var agevalue = 1;
Four undefined variables
57  agevalue
57  bmivalue
57  familyvalue
57  dietvalue