Javascript 添加2函数后的结果未定义
我试图添加两个函数calculate1()和calculate2()。这两个函数都从函数populate()获取值。代码错了吗?在两个函数上输入金额后,结果是未定义的总额Javascript 添加2函数后的结果未定义,javascript,html,Javascript,Html,我试图添加两个函数calculate1()和calculate2()。这两个函数都从函数populate()获取值。代码错了吗?在两个函数上输入金额后,结果是未定义的总额 <form> Car: <select id="slct1" name="slct1" onchange="populate('slct1','slct2')"> <option value=""></option> <opt
<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> Amount <input style="width:10%" type="number" name="amount1" id="amount1" onkeyup="result()"/> (g) </label>
<label> Total <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> Amount <input style="width:10%" type="number" name="amount2" id="amount2" onkeyup="result()"/> (g) </label>
<label> Total <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已未定义。