Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.03.2019, 13:42
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

Как посчитать сумму в таблицы из полей Input
Здравствуйте, помогите не могу понять как мне посчитать суму input в которых класс timer_input и получить суму в конце таблицы. Пробовал много вариантов ну не один не подходит
<table class="table_index">
  <tr class="number_">
    <td>
       <input class="form-control js-time_744 timer_input" step="0.01" type="number" value="6.0" name="time_tracking[time]" id="time_tracking_time">
       <input type="hidden" name="tracking[id]" id="tracking_id" value="744">
       <input type="hidden" name="time_tracking[user_id]" id="time_tracking_user_id" value="58">
       <input type="hidden" name="time_tracking[date]" id="time_tracking_date">
    </td>
  </tr>
  <tr class="number_">
    <td>
       <input class="form-control js-time_745 timer_input" step="0.01" type="number" value="4.0" name="time_tracking[time]" id="time_tracking_time">
       <input type="hidden" name="tracking[id]" id="tracking_id" value="745">
       <input type="hidden" name="time_tracking[user_id]" id="time_tracking_user_id" value="58">
       <input type="hidden" name="time_tracking[date]" id="time_tracking_date">
    </td>
  </tr>
  <td id="sum_total">Общая сумма</td>
</table>
Ответить с цитированием
  #2 (permalink)  
Старый 06.03.2019, 14:11
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

document.getElementById('sum_total').textContent = [].reduce.call(
    document.querySelectorAll('input.timer_input'),
    (res, node) => res + +(node.value || 0),
    0
);
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2019, 14:14
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

Nexus,
Спасибо большое.
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2019, 15:46
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

Nexus,
Можете ещё подсказать, у меня есть
<ul class="nav nav-tabs">
  <li>
    <a data-toggle="tab" href="#Monday">04 Mar Monday 0.0</a>
  </li>
  <li>
    <a data-toggle="tab" href="#Tuesday">05 Mar Tuesday 0.0</a>
  </li>
  <li class="active">
    <a data-toggle="tab" href="#Wednesday">06 Mar Wednesday 0.0</a>
  </li>
  <li>
    <a data-toggle="tab" href="#Thursday">07 Mar Thursday 0.0</a>
  </li>
  <li>
    <a data-toggle="tab" href="#Friday">08 Mar Friday 0.0</a>
  </li>
  <li>
   <a data-toggle="tab" href="#Saturday">09 Mar Saturday 0.0</a></li>
  <li>
   <a data-toggle="tab" href="#Sunday">10 Mar Sunday 0.0</a>
  </li>
</ul>

Когда я нажимаю на любой день у меня открывается таблица, и в таблице есть
например я сейчас на таблице
<div class="tab-content" id="nav-tabContent">
    <div class="tab-pane fade" id="Monday">

<table class="table_index">
  <tr class="number_">
    <td>
       <input class="form-control js-time_744 timer_input" step="0.01" type="number" value="6.0" name="time_tracking[time]" id="time_tracking_time">
       <input type="hidden" name="tracking[id]" id="tracking_id" value="744">
       <input type="hidden" name="time_tracking[user_id]" id="time_tracking_user_id" value="58">
       <input type="hidden" name="time_tracking[date]" id="time_tracking_date">
    </td>
  </tr>
  <tr class="number_">
    <td>
       <input class="form-control js-time_745 timer_input" step="0.01" type="number" value="4.0" name="time_tracking[time]" id="time_tracking_time">
       <input type="hidden" name="tracking[id]" id="tracking_id" value="745">
       <input type="hidden" name="time_tracking[user_id]" id="time_tracking_user_id" value="58">
       <input type="hidden" name="time_tracking[date]" id="time_tracking_date">
    </td>
  </tr>
  <tr>
    <td id="sum_total">Общая сумма</td>
  </tr>
</table>

как можно получить суму каждой таблице, сейчас я получаю суму всех таблиц мне нужно что сума отображалась для каждой таблице.

Последний раз редактировалось Gidpoiiohika, 06.03.2019 в 15:48. Причина: кк
Ответить с цитированием
  #5 (permalink)  
Старый 06.03.2019, 15:51
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

id - уникальный идентификатор.
Сообщение от Gidpoiiohika
Когда я нажимаю на любой день у меня открывается таблица, и в таблице есть
например я сейчас на таблице
Вы по-русски плохо разговариваете?

id="sum_total" замените на class="sum_total"
и попробуйте так:
$('.tab-content .table_index').each(function() {
    $(this).find('.sum_total').text([].reduce.call(
        this.querySelectorAll('input.timer_input'),
        (res, node) => res + +(node.value || 0),
        0
    ));
});
Ответить с цитированием
  #6 (permalink)  
Старый 06.03.2019, 15:59
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

Nexus,
Спасибо большое!!! ну сейчас всё хорошо работает, ну только когда перезагружу страницу, можно как то сделать что бы оно работало без перезагрузки ?
Ответить с цитированием
  #7 (permalink)  
Старый 06.03.2019, 16:08
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

$('body').on('change', '.timer_input', function() {
    $('.tab-content .table_index').each(function() {
      $(this).find('.sum_total').text([].reduce.call(
          this.querySelectorAll('input.timer_input'),
          (res, node) => res + +(node.value || 0),
          0
      ));
    });
  })
Ответить с цитированием
  #8 (permalink)  
Старый 06.03.2019, 16:08
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

Так правильно будет?
$('body').on('change', '.timer_input', function() {
    $('.tab-content .table_index').each(function() {
      $(this).find('.sum_total').text([].reduce.call(
          this.querySelectorAll('input.timer_input'),
          (res, node) => res + +(node.value || 0),
          0
      ));
    });
  })
Ответить с цитированием
  #9 (permalink)  
Старый 06.03.2019, 16:08
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

Сообщение от Gidpoiiohika
Так правильно будет?
попробуйте и узнаете
Ответить с цитированием
  #10 (permalink)  
Старый 06.03.2019, 16:13
Интересующийся
Отправить личное сообщение для Gidpoiiohika Посмотреть профиль Найти все сообщения от Gidpoiiohika
 
Регистрация: 04.12.2018
Сообщений: 22

Nexus,
Спасибо большое за помощь!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить заполненность полей в пошаговой форме? adash Элементы интерфейса 29 31.08.2018 14:15
фильтр для 60ти полей таблицы skrudjmakdak Элементы интерфейса 3 12.06.2014 10:03
как прописать условия для полей input и textarea Nailya Общие вопросы Javascript 12 06.06.2013 16:48
Посчитать кол-во div и вывести сумму. djonA Общие вопросы Javascript 11 27.05.2013 08:45
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55