是的,所以我在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脚本位于底部的脚本标记
中答案 0 :(得分:3)
您已使用a.selectedIndex
获取所有三个元素的所选项目。将其更改为在适当的位置使用b.selectedIndex
和c.selectedIndex
。或者您可以直接说出a.value
,b.value
和c.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
//...
}