2016-02-29 24 views
0

我試圖使用JS從輸入字段中獲取四個數字的總和或平均值,然後在另一個文本字段中顯示該數字。有一個單選按鈕可以選擇是要顯示的總數還是平均數。從四個輸入字段中查找總數或平均值,並在另一個輸入字段中顯示數值

這裏是我的HTML表單:

<form name="calculate"> 

Mark: <input type="number" name="number" id="num1"><br> 
Mark: <input type="number" name="number" id="num2"><br> 
Mark: <input type="number" name="number" id="num3"><br> 
Mark: <input type="number" name="number" id="num4"><br> 

<input type="radio" id="numTotal" name="choice" value="total">Find total</input> 
<input type="radio" id="numAvg" name="choice" value="average">Find average</input> 
<br> 

<input type="submit" form="calculate" value="Submit" onclick="calculate();"> 
<input type="reset" form="calculate" value="Reset"> 
<br> 
Result: <input type="text" name="result" id="result" value="" disabled> 

</form> 

而且這兒是我的JS代碼:

function calculate(){ 

var arr = document.getElementsByName("number"); 
var tot = 0; 
var av = 0; 

for(var i = 0; i < arr.length; i++) { 
    if(parseInt(arr[i].value)){ 
      tot += parseInt(arr[i].value); 
    } 
} 

av = tot/arr.length; 

if(document.getElementById("numTotal").checked) { 
    document.calculate.getElementbyId("result").value = tot; 
} 

if(document.getElementById("numAvg").checked) { 
    document.getElementbyId("result").value = av; 
} 

} 

運行此之後,結果輸入字段不顯示輸入。是我的腳本或HTML或兩者中的錯誤?

+0

的document.calculate.getElementbyId( 「結果」)值= TOT爲我工作。已在我目前正在測試的那個中刪除,因爲它不起作用。 – nisyedlah

+0

把**改成** ** by **'document.getElementsById(「result」).value = tot;'我把表單名改爲calc並將函數名改爲calculateFunc,仍然不起作用。 – nisyedlah

回答

1
<script type="text/javascript"> 
    function calculateFunc() { 

     var arr = document.getElementsByName("number"); 
     var tot = 0; 
     var av = 0; 

     for (var i = 0; i < arr.length; i++) { 
      if (parseInt(arr[i].value)) { 
       tot += parseInt(arr[i].value); 
      } 
     } 

     av = tot/arr.length; 

     if (document.getElementById("numTotal").checked) { 
      document.getElementById("result").value = tot; 
     } 

     if (document.getElementById("numAvg").checked) { 
      document.getElementById("result").value = av; 
     } 

     return false; 
    } 
</script> 

<div class="form"> 
<form name="calculate"> 

Mark: <input type="number" name="number" id="num1"><br> 
Mark: <input type="number" name="number" id="num2"><br> 
Mark: <input type="number" name="number" id="num3"><br> 
Mark: <input type="number" name="number" id="num4"><br> 

<input type="radio" id="numTotal" name="choice" value="total">Find total</input> 
<input type="radio" id="numAvg" name="choice" value="average">Find average</input> 
<br> 
<br> 
Result: <input type="text" name="result" id="result" value="" disabled> 

</form> 

<input type="submit" value="Submit" onclick="calculateFunc();"> 
<input type="reset" value="Reset"> 
</div> 

這是在Chrome :)

+0

這對我也適用!也許這是因爲div和返回false,我的結果和按鈕順序。我想我還有很多東西要學。謝謝! – nisyedlah

0
document.calculate.getElementbyId("result").value = tot; 

if(document.getElementById("numTotal").checked) { 
    document.calculate.getElementbyId("result").value = tot; 
} 

if(document.getElementById("numAvg").checked) { 
    document.getElementbyId("result").value = av; 
} 

需要更換

document.getElementbyId("result").value = tot; 

if(document.getElementById("numTotal").checked) { 
    document.calculate.getElementById("result").value = tot; 
} 

if(document.getElementById("numAvg").checked) { 
    document.getElementById("result").value = av; 
} 
+0

對此我很抱歉,忘記刪除它,但它仍然不起作用。有任何想法嗎? – nisyedlah

+0

getElementbyId> getElementById與'ById' –

+0

結果仍然不會在結果輸入字段中。任何其他想法? – nisyedlah

相關問題