2010-03-11 52 views
0

我有一个带有几个SELECT框的窗体,并根据用户的选择出现一个值。这是完全正常工作。计算DIV内容的总和

现在我想要一个脚本来自动或按下按钮来计算这些值的总和。

完整的代码我到目前为止是这样的:

中的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 = "&euro; " +this.value; 
    } 

    value2=document.getElementById('value2'), 
    combobox2=document.getElementById('second'); 

    combobox2.onchange=function(b) 
    { 
    document.getElementById('value2').innerHTML = "&euro; " +this.value; 
    } 
} 
function changeText(){ 
var sum;  
sum= (value * 1) + (value2 * 1); 
document.getElementById('sum').innerHTML = "&euro; " +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> 

如果有人可以帮助,那将是巨大的。我真的无法弄清楚。非常感谢!!

回答

1

我已经修改了你的JavaScript稍稍迎合计算,现在它工作正常:

window.onload=function(a,b) 
{ 
    value=document.getElementById('value1'), 
    combobox=document.getElementById('first'); 

    combobox.onchange=function(a) 
    { 
    document.getElementById('value1').innerHTML = "&euro; " +this.value; 
    } 

    value2=document.getElementById('value2'), 
    combobox2=document.getElementById('second'); 

    combobox2.onchange=function(b) 
    { 
    document.getElementById('value2').innerHTML = "&euro; " +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 = "&euro; " +sum; 
}​ 

这里举例:http://jsbin.com/awici/2

不过,我建议你使用一些其他的方法,因为这个有点片断,把数字作为字符串处理。

一个好方法是将值存储在隐藏字段中,然后简单计算其中的值。

希望这清楚的事情,并帮助你。随意问任何你不明白的东西