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

时间:2015-09-26 14:05:17

标签: javascript html5

我正在尝试添加两个函数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>

1 个答案:

答案 0 :(得分:0)

答案是增加每个计算函数的总数。示例(总计+总计1)。删除了变量t并在打印输出部分中声明了总计。