我有一个包含多个SELECT框的表单,并根据用户的选择显示一个值。这完全有效。
现在我想要一个自动或按下按钮时计算这些值的SUM的脚本。
到目前为止我的完整代码是:
JavaScript:
<script type="text/javascript">
window.onload=function(a,b)
{
value=document.getElementById('value1'),
combobox=document.getElementById('first');
combobox.onchange=function(a)
{
document.getElementById('value1').innerHTML = "€ " +this.value;
}
value2=document.getElementById('value2'),
combobox2=document.getElementById('second');
combobox2.onchange=function(b)
{
document.getElementById('value2').innerHTML = "€ " +this.value;
}
}
function changeText(){
var sum;
sum= (value * 1) + (value2 * 1);
document.getElementById('sum').innerHTML = "€ " +this.value;
}
</script>
HTML:
<ol>
<li><label><span>First</span></label>
<select name="block1" id="first">
<option value="0">Please select...</option>
<option value="1">Summer</option>
<option value="2">Spring</option>
</select></li>
</ol>
<ol>
<li><label><span>Second</span></label>
<select name="block2" id="second">
<option value="0">Please select...</option>
<option value="1">Summer</option>
<option value="2">Spring</option>
<option value="3">Pink</option>
<option value="4">Corporate</option>
</select></li>
</ol>
<div id="value1">value 1</div>
<div id="value2">value 2</div>
<input type='button' onclick='changeText()' value='Calculate'/>
<div id="sum">Total here</div>
如果有人可以提供帮助,那就太好了。我真的无法弄明白。非常感谢!!
答案 0 :(得分:1)
我稍微修改了你的JavaScript以满足计算需求,现在它可以正常工作:
window.onload=function(a,b)
{
value=document.getElementById('value1'),
combobox=document.getElementById('first');
combobox.onchange=function(a)
{
document.getElementById('value1').innerHTML = "€ " +this.value;
}
value2=document.getElementById('value2'),
combobox2=document.getElementById('second');
combobox2.onchange=function(b)
{
document.getElementById('value2').innerHTML = "€ " +this.value;
}
}
function changeText(){
var sum;
div1Value = document.getElementById('value1').innerHTML.replace(/[^0-9]/g, '')*1;
div2Value = document.getElementById('value2').innerHTML.replace(/[^0-9]/g, '')*1;
sum = div1Value + div2Value;
document.getElementById('sum').innerHTML = "€ " +sum;
}
但是,我建议你使用其他方法,因为这个方法有点不稳定,并将数字作为字符串处理。
一个好的方法是将值存储在隐藏字段中,然后简单地计算其中的值。
希望这清楚,并帮助你。随意问你不理解的任何事情