Javascript 添加2函数后的结果未定义

Javascript 添加2函数后的结果未定义,javascript,html,Javascript,Html,我试图添加两个函数calculate1()和calculate2()。这两个函数都从函数populate()获取值。代码错了吗?在两个函数上输入金额后,结果是未定义的总额 <form> Car: <select id="slct1" name="slct1" onchange="populate('slct1','slct2')"> <option value=""></option> <opt

我试图添加两个函数calculate1()和calculate2()。这两个函数都从函数populate()获取值。代码错了吗?在两个函数上输入金额后,结果是未定义的总额

<form>
    Car:
    <select id="slct1" name="slct1" onchange="populate('slct1','slct2')">
        <option value=""></option>
        <option value="Fiat">Fiat</option>
        <option value="Dodge">Dodge</option>
        <option value="Ford">Ford</option>
    </select>
    Type of Car:
    <select id="slct2" name="slct2">
    </select>
    <label>&nbsp;Amount&nbsp;<input style="width:10%" type="number" name="amount1" id="amount1" onkeyup="result()"/>    (g)&nbsp;</label>
    <label>&nbsp;Total&nbsp;<input style="width:10%" type="number" name="answer1" id="answer1"/></label>  
    <input type="reset" name="Reset" value="Reset" onclick="rstFunction()"/>
    <br><br><br>
    <hr>
    <br>
    </form>
    <!--Starts 2 selection-->
    <form>
    Food:
    <select id="slct1a" name="slct1a" onchange="populate('slct1a','slct2a')">
        <option value=""></option>
        <option value="Fiat">Fiat</option>
        <option value="Dodge">Dodge</option>
        <option value="Ford">Ford</option>
    </select>
    Type of Food:
    <select id="slct2a" name="slct2a">
    </select>
    <label>&nbsp;Amount&nbsp;<input style="width:10%" type="number" name="amount2" id="amount2" onkeyup="result()"/>    (g)&nbsp;</label>
    <label>&nbsp;Total&nbsp;<input style="width:10%" type="number" name="answer2" id="answer2"/></label>  
    <input type="reset" name="Reset" value="Reset" onclick="rstFunction()"/>
    <br><br><br>
    <hr>
    <br>
    <p id="ansCAL"></p>
    </form>
 <input type="reset" onclick="resetFunctions()" value="Reset">
   </script>
var t = total1 + total2;

    function result() {
   document.getElementById('ansCAL').value = calculate1() + calculate2();
}
function populate(select1, select2)
{
    var Brand1 = document.getElementById(select1);
    var Brand2 = document.getElementById(select2);
    Brand2.innerHTML = "";
    if(Brand1.value == "Fiat")
    {
        var optionArray = ["|","4000|Uno","5000|Ritmo","6000|Panda"];
    }
    else if(Brand1.value == "Dodge")
    {
        var optionArray = ["|","4000|Avanger","5000|Challengere","6000|Charger"];
    }
    else if(Brand1.value == "Ford")
    {
        var optionArray = ["|","7000|Mustang","8000|Shelby","focus|Focus"];
    }
    for(var option in optionArray)//the options within the optionArray
    {
        var pair = optionArray[option].split("|");//in tha variable pair is stored both value and label
        var newOption = document.createElement("option");// option in the bracket is used to create new options or you can insert divs paragraph etc
        newOption.value = pair[0];//pair 0 gives the value
        newOption.innerHTML = pair[1];//pair 1 gives the label
        Brand2.options.add(newOption);
    }
}
function calculate1() {
    Brand1 = document.getElementById('slct1').value;
    Brand2 = document.getElementById('slct2').value;
    multi=document.getElementById('amount1').value;
    total1=parseInt((Brand2)*multi/100);
    document.getElementById('answer1').value=total1;
    document.getElementById("ansCAL").innerHTML = "<br>Total amount " + t;
}
function calculate2() {
    Brand1 = document.getElementById('slct1a').value;
    Brand2 = document.getElementById('slct2a').value;
    multi=document.getElementById('amount2').value;/*to change accordingly amount1*/
    total2=parseInt(((Brand2)*multi)/100);
    document.getElementById('answer2').value=total2;/*to change accordingly amount1*/
    document.getElementById("ansCAL").innerHTML = "<br>Total amount " + t;
}
function resetFunctions() {
    //using the array forEach method on the form
    Array.prototype.forEach.call(document.forms,function(el,idx,array){
    //the method parameters are element, index and the array
    // we loop through all the forms and invoking reset()
        el.reset();
    });
    result();
}
function rstFunction()
{   
    document.getElementById("ansCAL").innerHTML = "<br>Total amount" + result().value;  
}
</script>

汽车:
法令
闪避
河流浅水处
车辆类型:
金额(克)
全部的





食物: 法令 闪避 河流浅水处 食物种类: 金额(克) 全部的




var t=total1+total2; 函数结果(){ document.getElementById('ansCAL')。value=calculate1()+calculate2(); } 函数填充(选择1,选择2) { var Brand1=document.getElementById(选择1); var Brand2=document.getElementById(选择2); Brand2.innerHTML=“”; 如果(品牌1.value==“菲亚特”) { var optionArray=[“|”、“4000|Uno”、“5000|Ritmo”、“6000|Panda”]; } else if(Brand1.value==“道奇”) { var optionArray=[“|”、“4000 | Avanger”、“5000 | Challengere”、“6000 | Charger”]; } 否则如果(Brand1.value==“Ford”) { var optionArray=[“|”、“7000辆野马”、“8000辆谢尔比”、“聚焦”]; } for(optionArray中的var选项)//optionArray中的选项 { var pair=optionArray[option].split(“|”);//在变量对中存储值和标签 var newOption=document.createElement(“option”);//括号中的选项用于创建新选项,也可以插入divs段落等 newOption.value=对[0];//对0给出值 newOption.innerHTML=对[1];//对1给出标签 Brand2.options.add(newOption); } } 函数calculate1(){ Brand1=document.getElementById('slct1')。值; Brand2=document.getElementById('slct2')。值; multi=document.getElementById('amount1')。值; total1=parseInt((Brand2)*multi/100); document.getElementById('answer1')。value=total1; document.getElementById(“ansCAL”).innerHTML=“
总额”+t; } 函数calculate2(){ Brand1=document.getElementById('slct1a')。值; Brand2=document.getElementById('slct2a')。值; multi=document.getElementById('amount2').value;/*以相应地更改amount1*/ total2=parseInt(((Brand2)*multi)/100); document.getElementById('answer2')。value=total2;/*以相应地更改数量1*/ document.getElementById(“ansCAL”).innerHTML=“
总额”+t; } 函数resetFunctions(){ //在窗体上使用数组forEach方法 Array.prototype.forEach.call(document.forms、function(el、idx、Array){ //方法参数是元素、索引和数组 //我们遍历所有表单并调用reset() el.reset(); }); 结果(); } 函数rstFunction() { document.getElementById(“ansCAL”).innerHTML=“
总额”+结果().value; }
答案是增加每个计算函数的总数。示例(总计+总计1)。删除变量t并在打印输出部分声明总计。

如果它没有按预期工作,则是错误的。具体来说,您不会从函数返回任何内容。您希望值是什么?同样,您希望函数返回什么?我看到了两个。。hm.
var t=total1+total2开始时yout t t已未定义。