2014-10-10 88 views
0

我有输入时在同一个文本框上计算的文本框。我想要的是将它们全部添加到最终结果中。我试过使用我的旧功能。下面是它的外观:在jQuery中添加多个文本框计算值

function compute(){ 
    var quiz = document.getElementById('quiz').value; 
    var recitation = document.getElemenById('recitation').value; 
    var homework = document.getElementById('homework').value; 
    var seatwork = document.getElementById('seatwork').value; 
    var activities = document.getElementById('activities').value; 
    var exams = document.getElementById('exams').value; 
    var project = document.getElementById('project').value; 
    var total = document.getElementById('total').value; 
    var grade = quiz+recitation+homework+seatwork+activities+exams+project; 
    total.value = grade; 
} 

而且我在每个文本框上都放上了oninput =“compute()”。但它不是相互作用的。可能是我的错误?它可能是功能在一个点上相撞吗?

编辑:我创建了一个测试页面。基本上是一样的。在这里你去:

<!DOCTYPE html> 
<head> 
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
     <title>Test</title> 
</head> 

<body> 
<input id="first" type="text" onchange="compute()"> 

<script> 
$('#first').on('change', function() { 
    $(this).val($(this).val() * 3); 
}); 
</script> 

<input id="second" type="text" onchange="compute()"> 

<script> 
$('#second').on('change', function() { 
    $(this).val($(this).val() * 3); 
}); 
</script> 


<input id="result" type="text" readonly> 

<script> 
     function compute(){ 
       var myBox1 = document.getElementById('first').value; 
       var myBox2 = document.getElementById('second').value; 
       var result = document.getElemetById('result').value; 
       var grade = first + second; 
       total.value = grade; 
     } 
</script> 

</body> 
</html> 
+0

我没有时间给你一个答案,但尽量避免从HTML调用事件。混合html和JavaScript被认为是不好的做法。为此使用事件监听器。 – iovis 2014-10-10 23:39:53

回答

1
onChange="compute();" 

你尝试了吗?

编辑:你可能还必须更改total.value = grade;total = grade;或类似的东西。我相信这个函数可以写得更简单一些,但我不知道你的完整代码。

+0

我已经试过了。仍然不起作用。 – 2014-10-10 23:03:52

+0

我明白了。你可以发布你的HTML和jQuery代码吗? – koljanep 2014-10-10 23:05:28

+0

感谢发布代码。在上面,将'total.value = grade;'改为'$('#result')。val(grade);' – koljanep 2014-10-11 09:58:04

相关问题