Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Общий подсчёт из нескольких полей (https://javascript.ru/forum/dom-window/37277-obshhijj-podschjot-iz-neskolkikh-polejj.html)

SkyLight 14.04.2013 10:47

Ну, вы почти угадали. Только в первых четырех выражениях totalSum из скобок уберите - если у text есть аргумент, то значение записывается, если нет - то получается. Ну и последняя строка: зачем вам там "+="?

alshinkareff 14.04.2013 12:28

totalSum из скобок убрал, "+" перед "=" убрал. И как вывести полученное значение "sum" в <span>?

$("#sum span").text(sum);

Как-то так?

SkyLight 14.04.2013 19:08

Да, так. При этом, пересчет суммы надо делать при каждом пересчете ваших промежуточных сумм, т.е. всех тех функций выше.

alshinkareff 14.04.2013 19:36

SkyLight,

Я бы с удовольствием. Но не представляю как это сделать. Мучаюсь уже два дня с этой ерундой...

SkyLight 14.04.2013 20:27

У вас пересчет промежуточных сумм происходит в обработчиках, повешенных на change. Теперь вам надо туда же добавить пересчет общей суммы.

alshinkareff 14.04.2013 21:05

SkyLight,
Ну это я понял, только как это сделать, я не знаю.:blink:

SkyLight 14.04.2013 21:15

Вы уже написали кусок, который суммирует результаты. Теперь только надо добавить его во все обработчики на change'ах.

alshinkareff 14.04.2013 21:38

SkyLight,
Странно как-то получается. Я добавляю во все обработчики, в начало каждого, переменную sum, т.е.

var sum = 0;

После этого добавляю:

sum = totalSum1 + totalSum2 + totalSum3 + totalSum4;

в конец каждого обработчика. + ко всему я добавляю:

var sum = 0;
var totalSum1 = parseInt($(#"count_price span").text());
var totalSum2 = parseInt($(#"count_price2 span").text());
var totalSum3 = parseInt($(#"count_price3 span").text());
var totalSum4 = parseInt($(#"count_price4 span").text());

sum = totalSum1 + totalSum2 + totalSum3 + totalSum4;

$("#sum span").text(sum);

после всех 4 обработчиков?

Странная структура получается... Разве это логически правильно?

SkyLight 14.04.2013 21:43

Цитата:

Сообщение от alshinkareff
Разве это логически правильно?

Правильнее будет повторяющиеся операции выносить в функцию и уже ее дергать.

alshinkareff 14.04.2013 22:05

В общем вообще всё перестало работать.:stop:


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