2010-03-11 54 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

不過,我建議你使用一些其他的方法,因爲這個有點片斷,把數字作爲字符串處理。

一個好方法是將值存儲在隱藏字段中,然後簡單計算其中的值。

希望這清楚的事情,並幫助你。隨意問任何你不明白的東西