Javascript无法一起添加变量

时间:2013-02-11 21:02:00

标签: javascript html

是的,所以我在3个下拉框中有值,并且会有更多(看着添加大约20个下拉框,这些下拉框添加以给出项目的最终价格。这是HTML的代码。

<form id="myform1>
<p>Testing 1</p>
<select id="Test1">
<option value="24">Item one</option>
<option value="29">Item Two<option>
<!--I have the first box going to 20 items-->
</select>

<p>Testing 2</p>
<select id="Test2">
<option value="25">Item one</option>
<option value="100">Item Two<option>
<!--I have the second box going to 10 items-->
</select>

<p>Testing 3</p>
<select id="Test3">
<option value="24">Item one</option>
<option value="100">Item Two<option>
<!--I have the third box going to 10 items-->
</select>


</form>
<button onclick="myFunction()">Update</button>
<p id="demo"></p>

然后我有我的Javascript

function myFunction()
{
var a = document.getElementById("list1");
var A = a.options[a.selectedIndex].value;

var b = document.getElementById("list2");
var B = b.options[a.selectedIndex].value;

var c = document.getElementById("list3");
var C = c.options[a.selectedIndex].value;

var IntA = parseInt(A);
var IntB = parseInt(B);
var IntC = parseInt(C);

var x=IntB + IntA;
var y=x + IntC;
var demoP=document.getElementById("demo")
demoP.innerHTML= y;
}

我的问题是它只有在我完全使用var c然后取出var并将其计算为x时才有效。我尝试了很多方法而且不知所措。干杯

P.S。 Java脚本位于底部的脚本标记

2 个答案:

答案 0 :(得分:3)

您已使用a.selectedIndex获取所有三个元素的所选项目。将其更改为在适当的位置使用b.selectedIndexc.selectedIndex。或者您可以直接说出a.valueb.valuec.value,而不是通过options集合。

你的html中的id属性也与你在JS中使用的属性不匹配。

修复这些问题并且它可以正常工作,如您所见:http://jsfiddle.net/6WWdc/

P.S。最好养成将基数作为第二个参数传递给parseInt()的习惯,如IntA = parseInt(A, 10); - 否则如果输入字符串有前导0或前导{{1它可能(取决于浏览器和0x指令的presense)被解释为八进制或十六进制。

答案 1 :(得分:0)

function myFunction()
{
    var a = document.getElementById("list1");
    var A = a.options[a.selectedIndex].value;

    var b = document.getElementById("list2");
    var B = b.options[b.selectedIndex].value; //changed to var b

    var c = document.getElementById("list3");
    var C = c.options[c.selectedIndex].value; //changed to var c

    //...
}