576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
1

Сумма input

29.03.2015, 20:06. Показов 3958. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ помогите, как подсчитать сумму инпутов, их может быть n-количество, все они в форме
PHP/HTML
1
<input type='text' class='total_price' value="<?php echo $result['uslugi_price']; ?>" disabled='disabled'>
пробовал так
Javascript
1
2
3
4
5
$('.total_price').each(function(){
                var summ = 0;
                summ += parseFloat($(this).val());
                $('#summ').html(summ);
            });
выводит последний элемент из списка
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 20:06
Ответы с готовыми решениями:

Предеальная сумма введенной в несколько input
Помогите дописать обработку так чтобы атрибут &quot;max&quot; изменялся не превышая допустимого максимального...

Сложить один input c другим input
Господа, выручайте. Уже сутки сижу, ни как не могу закончить. Есть 2 input, значения первого...

Выбор radio input + text input
Всем привет. Никак не могу решить задачу. Суть такая: на странице динамически создаются группы по 3...

Как вывести input radio в зависимости от выше выбранного input radio
Нужно сделать как бы вывод на странице двух input radion. Выбор пола. Мужчина и Женщина. Если я...

21
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,245
29.03.2015, 20:37 2
Цитата Сообщение от Виталюска Посмотреть сообщение
выводит последний элемент из списка
а что же должно выводиться, если у вас переменная summ создаётся на каждой итерации цикла..
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 20:54 3
Виталюска, создайте переменную вне функции
1
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 21:08  [ТС] 4
Давран, спс опять помог, только теперь вопрос как сделать чтоб выводило только 2 цифры после запятой, ото со значений 50.25+50.33+50.25+50.33=201.15999999999997

Добавлено через 9 минут
да и при изменении значения в поле
HTML5
1
<input type='text' class='total_price' value="<?php echo $result['uslugi_price']; ?>" disabled='disabled'>
сумма не меняется
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 21:30 5
Виталюска, нашел в нете
Javascript
1
2
3
4
5
function roundPlus(x, n) { //x - число, n - количество знаков
  if(isNaN(x) || isNaN(n)) return false;
  var m = Math.pow(10,n);
  return Math.round(x*m)/m;
}
Добавлено через 1 минуту
https://jsfiddle.net/nvh38Lv6/
1
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 21:32  [ТС] 6
Давран, а как быть с тем что сумма не обновляется
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 21:32 7
Цитата Сообщение от Виталюска Посмотреть сообщение
сумма не меняется
а при изменении значений функция подсчета снова запускается?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 21:36  [ТС] 8
Цитата Сообщение от Давран Посмотреть сообщение
а при изменении значений функция подсчета снова запускается?
а как это проверить?
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 21:45 9
Цитата Сообщение от Виталюска Посмотреть сообщение
а как это проверить?
а тут не нужно нечего проверять. если у вас меняются значения, то и следовательно нужно подсчитывать заново.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 21:53  [ТС] 10
Цитата Сообщение от Давран Посмотреть сообщение
если у вас меняются значения, то и следовательно нужно подсчитывать заново.
но этого не происходит, значения в полях меняется, а вот сумма нет

Добавлено через 3 минуты
Давран, вот вес JS
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 $(document).ready(function() {
            $('.minus').click(function () {
                selected=$(this);
                var input = selected.siblings('.amount').val();
                var new_val=parseInt(input) - 1;
                selected.siblings('.amount').val(new_val);
                var for_one=selected.nextAll('.price_for_one:first').val();
                // selected.prevAll('.total_price:first').val(for_one*new_val);
                selected.parent('td').prev('td').children('.total_price').val(for_one*new_val);
            });
            $('.plus').click(function () {
                selected=$(this);
                var input = selected.siblings('.amount').val();
                var new_val=parseInt(input) + 1;
                selected.siblings('.amount').val(new_val);
                var for_one=selected.nextAll('.price_for_one:first').val();
                // selected.prevAll('.total_price:first').val(for_one*new_val);
                selected.parent('td').prev('td').children('.total_price').val(for_one*new_val);
            });
            
            function roundPlus(x, n) { //x - число, n - количество знаков
              if(isNaN(x) || isNaN(n)) return false;
              var m = Math.pow(10,n);
              return Math.round(x*m)/m;
            }
            var summ = 0;
            $('.total_price').each(function(){
                summ += parseFloat($(this).val());
                $('#summ').html(roundPlus(summ,2));
            });
    
 
        });
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 21:54 11
Виталюска, вот сами подумайте, сперва a=2, и b=3 c=a+b. в "с" запишется 5. Вот вы посчитали и получили сумму, потом вы в "a" записали 4, и что бы получить сумму, вам нужно снова посчитать c=a+b. только после того как вы снова посчитаете, и в "c" запишите 7.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 22:01  [ТС] 12
Цитата Сообщение от Давран Посмотреть сообщение
только после того как вы снова посчитаете, и в "c" запишите 7.
это я понимаю, насколько я понимаю each отвечает за проход по всем элементам, так почему она не выполняется когда я изменяю значения в других полях

Добавлено через 1 минуту
мне надо как-то назначить изменение после нажатия?
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 22:02 13
Цитата Сообщение от Виталюска Посмотреть сообщение
мне надо как-то назначить изменение после нажатия?
Ураааааа!!!! Вы понялииииии!!!!! Пойду отмечу это
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 22:05  [ТС] 14
Цитата Сообщение от Давран Посмотреть сообщение
Ураааааа!!!! Вы понялииииии!!!!!
в теории да, но вот на практике как реализовать вот этого не понял
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 22:07 15
Виталюска, почитайте про функции keyup() и change(). а завтра напишете чего смогли добиться. Попытайтесь написать
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 22:24  [ТС] 16
Давран, пробовал я использовать
Javascript
1
2
3
4
5
6
7
$('.total_price').change(function(){
                
                $('.total_price').each(function(){
                    summ += parseFloat($(this).val());
                    $('#summ').html(roundPlus(summ,2));
                });
            });
но тогда вообще не чего не выводит

Добавлено через 10 минут
Цитата Сообщение от Давран Посмотреть сообщение
Попытайтесь написать
да еслибы у меня получилось написать то я бы сюда не писал
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 22:26 17
Виталюска, я не писал "напишите", я написал "попытайтесь"
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 22:29  [ТС] 18
Цитата Сообщение от Давран Посмотреть сообщение
я написал "попытайтесь"
а это разве не то?
что не так:
1. я делаю проверку на изменение $('.total_price').change(function()
2. запускаю подсчет

но результата нет, неужели так сложно ткнуть что не так
0
203 / 152 / 44
Регистрация: 24.11.2013
Сообщений: 1,106
29.03.2015, 22:32 19
Виталюска, он у вас изменяется при нажатии на плюс или минус которые увеличивают количество товара, верно? тогда нужно просто вызывать функцию подсчета когда происходит нажатие на эти кнопки
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.03.2015, 22:54  [ТС] 20
Давран, я пробовал запихивать в
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$('.minus').click(function () {
                selected=$(this);
                var input = selected.siblings('.amount').val();
                var new_val=parseInt(input) - 1;
                selected.siblings('.amount').val(new_val);
                var for_one=selected.nextAll('.price_for_one:first').val();
                // selected.prevAll('.total_price:first').val(for_one*new_val);
                selected.parent('td').prev('td').children('.total_price').val(for_one*new_val);
                
                var summ = 0;
                $('.total_price').each(function(){
                    summ += parseFloat($(this).val());
                    $('#summ').html(roundPlus(summ,2));
                });             
                
            });
ноу меня не правильно считало, пока не вписал var summ = 0;, думал что надо как то отдельно это реализововать
0
29.03.2015, 22:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2015, 22:54
Помогаю со студенческими работами здесь

Одинаковая ширина для полей input text & input password
Никак не получается выровнять ширину двух тектовых полей: input type='text' и input...

Как реализовать на месте input button просто input?
Приветствую всех. Есть кнопка. Помогите реализовать логику. По нажатию на кнопку , появляется...

Получить названия файлов из input file в input text
Как переместить названия файла из input type file в input type text с помощью javascript?

Изменение цвета поля Input при наборе текста (именно при наборе,а не при установке курсора мышки в поле Input)
Добрый день всем! Подскажите пожалуйста код, позволяющий сделать следующие действия. Есть поле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru