Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как заставить итоговую цифру... (https://javascript.ru/forum/dom-window/20664-kak-zastavit-itogovuyu-cifru.html)

sergiocharm 13.08.2011 11:05

разобрался!

sergiocharm 13.08.2011 11:13

Ребят, вопрос такой:
Как суммировать данные?
к примеру пользователь ввел 10м в 26 диаметре и 32 диаметре -20метров... http://www.allremont59.ru/obem-vodyi...oprovodah.html
Хочется чтобы под таблицей автоматом выводилась итоговая сумма литров (под каждой таблицей отдельно)

спасибо!

melky 13.08.2011 11:24

Цитата:

Сообщение от sergiocharm (Сообщение 120259)
Ребят, вопрос такой:
Как суммировать данные?
к примеру пользователь ввел 10м в 26 диаметре и 32 диаметре -20метров... http://www.allremont59.ru/obem-vodyi...oprovodah.html
Хочется чтобы под таблицей автоматом выводилась итоговая сумма литров (под каждой таблицей отдельно)

спасибо!

пройтись по всем полям и назначить обработчики onchange. потом делай с числами, что хочешь

селектор примерно такой (jq)

$("table.forms input[name ^= 'input'");

sergiocharm 14.08.2011 13:22

Цитата:

Хочется чтобы под таблицей автоматом выводилась итоговая сумма литров (под каждой таблицей отдельно)
вопрос остается открытым :(

melky 15.08.2011 00:15

скрипт что ли написать не можете?

sergiocharm 15.08.2011 00:36

Ну вот есть
<script type="text/javascript">
  function addIt( type ) {
    var data = {
      A: 0.115,
      B: 0.200,
      C: 0.315,
      D: 0.530,
  F:0.140,
  G:0.216, 
  H:0.352,
  J:0.555, 
      K: 0.176,
      L: 0.315,
      M: 0.490,
      N: 0.805,
  O:1.260,
  P:1.960, 
  R:3.7,
  S:5.3, 
  T:8  }
    var value = parseFloat(document.getElementById("input" + type).value.replace(/,/, '.')) || 0;
    document.getElementById("output" + type).value = parseFloat(value * data[ type ]).toFixed(2);
  }
</script>


при расчете формы хотелось бы чтобы в конце таблицы (персонально) выводилась сумма. Я читал про чейнж, но там везде про выбор говорится, а вот как сделать чтобы суммировались вычисления не знаю


вот таблица
<span style="text-decoration: underline;">Трубопровод металлопластиковый</span>
<table class="forms">
<tr>
<td align="center" width="250"><strong>Диаметр трубопровода</strong></td>
<td align="center" width="100"><strong>Метраж (м.)</strong></td>
<td align="center" width="100"><strong>Объем (л.)</strong></td>
</tr>
<td align="center"><strong>16</strong></td>
<td align="center"><input type="text" name="inputA" id="inputA" value="0" size="10" onKeyUp="addIt('A');"/></td>
<td align="center"><input type="text" name="outputA" id="outputA" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>20</strong></td>
<td align="center"><input type="text" name="inputB" id="inputB" value="0" size="10" onKeyUp="addIt('B');"/></td>
<td align="center"><input type="text" name="outputB" id="outputB" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>26</strong></td>
<td align="center"><input type="text" name="inputC" id="inputC" value="0" size="10" onKeyUp="addIt('C');"/></td>
<td align="center"><input type="text" name="outputC" id="outputC" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>32</strong></td>
<td align="center"><input type="text" name="inputD" id="inputD" value="0" size="10" onKeyUp="addIt('D');"/></td>
<td align="center"><input type="text" name="outputD" id="outputD" size="8" /></td>
</tr>
</table>

<span style="text-decoration: underline;">Трубопровод Полипропиленовый PN 20</span>
<table class="forms">
<tr>
<td align="center" width="250"><strong>Диаметр трубопровода</strong></td>
<td align="center" width="100"><strong>Метраж (м.)</strong></td>
<td align="center" width="100"><strong>Объем (л.)</strong></td>
</tr>
<td align="center"><strong>16</strong></td>
<td align="center"><input type="text" name="inputF" id="inputF" value="0" size="10" onKeyUp="addIt('F');"/></td>
<td align="center"><input type="text" name="outputF" id="outputF" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>20</strong></td>
<td align="center"><input type="text" name="inputG" id="inputG" value="0" size="10" onKeyUp="addIt('G');"/></td>
<td align="center"><input type="text" name="outputG" id="outputG" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>26</strong></td>
<td align="center"><input type="text" name="inputH" id="inputH" value="0" size="10" onKeyUp="addIt('H');"/></td>
<td align="center"><input type="text" name="outputH" id="outputH" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>32</strong></td>
<td align="center"><input type="text" name="inputJ" id="inputJ" value="0" size="10" onKeyUp="addIt('J');"/></td>
<td align="center"><input type="text" name="outputJ" id="outputJ" size="8" /></td>
</tr>
</table>

<span style="text-decoration: underline;">Трубопровод стальной ВГП</span>
<table class="forms">
<tr>
<td align="center" width="250"><strong>Диаметр трубопровода (Ду)</strong></td>
<td align="center" width="100"><strong>Метраж (м.)</strong></td>
<td align="center" width="100"><strong>Объем (л.)</strong></td>
</tr>
<td align="center"><strong>15*2,8мм</strong></td>
<td align="center"><input type="text" name="inputK" id="inputK" value="0" size="10" onKeyUp="addIt('K');"/></td>
<td align="center"><input type="text" name="outputK" id="outputK" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>20*2,8мм</strong></td>
<td align="center"><input type="text" name="inputL" id="inputL" value="0" size="10" onKeyUp="addIt('L');"/></td>
<td align="center"><input type="text" name="outputL" id="outputL" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>25*3,2мм</strong></td>
<td align="center"><input type="text" name="inputM" id="inputM" value="0" size="10" onKeyUp="addIt('M');"/></td>
<td align="center"><input type="text" name="outputM" id="outputM" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>32*3,2мм</strong></td>
<td align="center"><input type="text" name="inputN" id="inputN" value="0" size="10" onKeyUp="addIt('N');"/></td>
<td align="center"><input type="text" name="outputN" id="outputN" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>40*3,5мм</strong></td>
<td align="center"><input type="text" name="inputO" id="inputO" value="0" size="10" onKeyUp="addIt('O');"/></td>
<td align="center"><input type="text" name="outputO" id="outputO" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>50*3,5мм</strong></td>
<td align="center"><input type="text" name="inputP" id="inputP" value="0" size="10" onKeyUp="addIt('P');"/></td>
<td align="center"><input type="text" name="outputP" id="outputP" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>76*3,5мм</strong></td>
<td align="center"><input type="text" name="inputR" id="inputR" value="0" size="10" onKeyUp="addIt('R');"/></td>
<td align="center"><input type="text" name="outputR" id="outputR" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>89*3,5мм</strong></td>
<td align="center"><input type="text" name="inputS" id="inputS" value="0" size="10" onKeyUp="addIt('S');"/></td>
<td align="center"><input type="text" name="outputS" id="outputS" size="8" /></td>
</tr>
<tr>
<td align="center"><strong>108*4мм</strong></td>
<td align="center"><input type="text" name="inputT" id="inputT" value="0" size="10" onKeyUp="addIt('T');"/></td>
<td align="center"><input type="text" name="outputT" id="outputT" size="8" /></td>
</tr>
</table>

devote 15.08.2011 11:34

function addIt( type ) {
    var data = {
      A: 0.115,
      B: 0.200,
      C: 0.315,
      D: 0.530,
  F:0.140,
  G:0.216, 
  H:0.352,
  J:0.555, 
      K: 0.176,
      L: 0.315,
      M: 0.490,
      N: 0.805,
  O:1.260,
  P:1.960, 
  R:3.7,
  S:5.3, 
  T:8  }
    var value = parseFloat(document.getElementById("input" + type).value.replace(/,/, '.')) || 0;
    document.getElementById("output" + type).value = parseFloat(value * data[ type ]).toFixed(2);

    var total = 0;
    for(var key in data) {
        total += parseFloat(document.getElementById("input" + key).value.replace(/,/, '.')) || 0;
    }
    document.getElementById("total_box").value = total;
  }

sergiocharm 15.08.2011 15:34

эмммм... а как в тело вставить?

sergiocharm 15.08.2011 20:32

Пока не забанили... благодарю за помощь: devote, devote и ещё раз devote, а так же melky, ну и тех кто пытался помочь...

devote 15.08.2011 22:08

Цитата:

Сообщение от sergiocharm
Пока не забанили...

а что должны?


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