2014-10-03 38 views
0

我想加入3个输入元素的类型编号。由于某种原因,这不起作用。当我拿出if语句时,它会起作用,但是只有在我更改了第一个语句(score1)之后。当我改变其他人时,什么也没有发生。谢谢。添加输入不会改变javascript

function getTotal() { 

var score1 = document.getElementById("score1"); 
var score2 = document.getElementById("score2"); 
var score3 = document.getElementById("score3"); 

var sc1 = parseInt(score1.value); 
var sc2 = parseInt(score2.value); 
var sc3 = parseInt(score3.value); 

if (isNan(sc1)) { 
    sc1 = 0; 
} 

if (isNan(sc2)) { 
    sc2 = 0; 
} 

if (isNan(sc3)) { 
    sc3 = 0; 
} 

var total = sc1 + sc2 + sc3; 
document.getElementById("totalScore").innerHTML = total; 

} 

function assign() { 
    var score1 = document.getElementbyId("score1"); 
    var score2 = document.getElementbyId("score2"); 
    var score3 = document.getElementbyId("score3");  

    score1.onchange = getTotal; 
    score2.onchange = getTotal; 
    score3.onchange = getTotal; 
} 


<!DOCTYPE html> 
<html> 
    <head> 
    <script src="getTotal.js" type="text/javascript"></script> 
    </head> 
    <body> 
    <header> 
     <tbody> 
     <tr> 
      <td> 
      Total: 
      <output id="total" class="totalScore"></output> 
      </td> 
     </tr> 
     </tbody> 
    </header> 
    <table> 
    <tbody> 
     <td>Score 1</td> 
     <td><input type="number" id="score1"/></td> 

     <td>Score 2</td> 
     <td><input type="number" id="score2" /></td> 

     <td>Score 3</td> 
     <td><input type="number" id="score3" /></td> 
    </tbody> 
    </table> 

    <script type="text/javascript">assign();</script> 

    </body> 
</html> 

回答

2

拼写错误。

var score1 = document.getElementbyId("score1"); 
var score2 = document.getElementbyId("score2"); 
var score3 = document.getElementbyId("score3"); 

如果您检查您的控制台,你会看到你在哪里都呼吁score1行错误Uncaught TypeError: undefined is not a function。选择器是document.getElement*By*Id,你写的是by小写..

0

你的<output>有一个id属性,值是“total”,而你的类属性的值是“totalscore”。考虑将id值更改为“totalscore”或将getElementById的值更改为“score”