Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Сумма вычитания в таблице (https://javascript.ru/forum/events/24793-summa-vychitaniya-v-tablice.html)

mishanay 14.01.2012 09:29

Сумма вычитания в таблице
 
Здравствуйте уважаемые специалисты!
Хочу спросить у вас совета по скрипту.
Имеется таблица
<table width="70%" border="0">
  <tr>
    <td rowspan="2">Сотрудник</td>
    <td colspan="3">Балы</td>
  </tr>
  <tr>
    <td>+</td>
    <td>-</td>
    <td>Итого</td>
  </tr>
<tr>
<td>Оля</td>
<form>
<td>6<input type="text" id="plusfield8" onKeyUp="recalc8()" value="6"></td>
<td>2<input type="text" id="minusfield8" onKeyUp="recalc8()" value="2"></td>
<td><span id="fieldRes8">0</span></td>
</form>
 <script language="JavaScript">
function recalc8()
 { 
document.getElementById('fieldRes8').innerHTML=parseInt(document.getElementById('plusfield8').value)-parseInt(document.getElementById('minusfield8').value); 
 }
 window.onload = function() {
   setTimeout(recalc8(), 1000);
};
 </script> 
</tr><tr>
<td>Лида</td>
<form>
<td>5<input type="text" id="plusfield7" onKeyUp="recalc7()" value="5"></td>
<td>2<input type="text" id="minusfield7" onKeyUp="recalc7()" value="2"></td>
<td><span id="fieldRes7">0</span></td>
</form>
 <script language="JavaScript">
function recalc7()
 { 
document.getElementById('fieldRes7').innerHTML=parseInt(document.getElementById('plusfield7').value)-parseInt(document.getElementById('minusfield7').value); 
 }
 window.onload = function() {
   setTimeout(recalc7(), 1000);
};
 </script> 
</tr><tr>
<td>Марина</td>
<form>
<td>4<input type="text" id="plusfield3" onKeyUp="recalc3()" value="4"></td>
<td>3<input type="text" id="minusfield3" onKeyUp="recalc3()" value="3"></td>
<td><span id="fieldRes3">0</span></td>
</form>
 <script language="JavaScript">
function recalc3()
 { 
document.getElementById('fieldRes3').innerHTML=parseInt(document.getElementById('plusfield3').value)-parseInt(document.getElementById('minusfield3').value); 
 }
 window.onload = function() {
   setTimeout(recalc3(), 1000);
};
 </script> 
</tr>

</table>

Скрипт впринципе работает. Но вот считает он только первую строку тоесть "Марина". Задача такая: это таблица с именами продавцов для стимулирования баллами. Должно быть так: из столбца + вычитается - и подводится итог в столбце "Итого".
Прошу помогите пожалуйста.

ksa 14.01.2012 11:21

Жуть какая-то... :blink:

Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function calc(N) { 
	var val=document.getElementById('plusfield'+N).value-document.getElementById('minusfield'+N).value; 
	document.getElementById('fieldRes'+N).innerHTML=val;
}
</script>
</head>
<body>
<table width="70%" border="0">
  <tr>
    <td rowspan="2">Сотрудник</td>
    <td colspan="3">Балы</td>
  </tr>
  <tr>
    <td>+</td>
    <td>-</td>
    <td>Итого</td>
  </tr>
<tr>
<td>Оля</td>
<form>
<td><input type="text" id="plusfield8" onkeyup="calc(8)" value="6"></td>
<td><input type="text" id="minusfield8" onkeyup="calc(8)" value="2"></td>
<td><span id="fieldRes8">0</span></td>
</form>
</tr><tr>
<td>Лида</td>
<form>
<td><input type="text" id="plusfield7" onKeyUp="calc(7)" value="5"></td>
<td><input type="text" id="minusfield7" onKeyUp="calc(7)" value="2"></td>
<td><span id="fieldRes7">0</span></td>
</form>
 <script language="JavaScript">
 </script> 
</tr><tr>
<td>Марина</td>
<form>
<td><input type="text" id="plusfield3" onKeyUp="calc(3)" value="4"></td>
<td><input type="text" id="minusfield3" onKeyUp="calc(3)" value="3"></td>
<td><span id="fieldRes3">0</span></td>
</form>
 <script language="JavaScript">
 </script> 
</tr>
</table>
</body>
</html>

mishanay 14.01.2012 11:27

Что то не работает.
document.getElementById('fieldRes'+N).innerHTML=val;

он записывает результат в поле fieldRes? Но результат так и не вывелся(((

ksa 14.01.2012 11:48

Цитата:

Сообщение от mishanay
Что то не работает.

Я смотрел в ИЕ8 и Опере - мой пример рабочий.

mishanay 14.01.2012 12:18

Странно! У меня третий столбец по нулям и в опере и в IE. Но все равно спасибо большое!

mishanay 14.01.2012 16:18

Ну что? Вариантов нет?


Часовой пояс GMT +3, время: 12:33.