Автор Тема: Сума на инпут полета  (Прочетена 2199 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

krastio

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 4
Сума на инпут полета
« -: 27 Септември 2013, 13:09:31 »
Здравейте, нуждая се от малко помощ ето и ситуацията : в долната таблица имам сума на полетата от таблицата с кода, който съм приложил работи, но само ако е о една сума в колона и тази колона е най-отдолу в таблицата. Целта ми е да направя така че в една и съща колона да имам няколко суми от различните класове кол1,кол2,кол3

Код: Javascript
  1.  $(document).keyup(function(){
  2.         var getSum = function (colNumber) {
  3.                 var sum = 0;
  4.                 var selector = '.col' + colNumber;
  5.  
  6.                 $('#sum_table').find(selector).each(function (index, element) {
  7.                    if(!isNaN(this.value) && this.value.length!=0){
  8.                        sum += parseInt($(element).val());
  9.                    }
  10.                 });  
  11.  
  12.                 return sum;        
  13.             };
  14.  
  15.             $('#sum_table').find('.total').each(function (index, element) {
  16.                 $(this).val(getSum(index + 1));
  17.  
  18.  
  19.             });
  20.         });
  21.  
Код: HTML
  1. <table id="sum_table" width="300" border="1">
  2. <tr>
  3.     <td>Apple</td>
  4.     <td>Orange</td>
  5.     <td>Watermelon</td>
  6. </tr>
  7. <tr>
  8.     <td><input type="text" class="total" name="one" value=""/></td>
  9.  
  10.     <td ><input class="col2" type="text" name="one" value="2"/></td>
  11.     <td ><input  class="col3" type="text" name="one" value="1"/></td>
  12. </tr>
  13. <tr>
  14.     <td ><input class="col1" type="text" name="two" value="1"/></td>
  15.     <td ><input type="text" class="total" name="one" value=""/></td>
  16.  
  17.     <td ><input class="total" type="text" name="one" value=""/></td>
  18. </tr>
  19. <tr>
  20.     <td ><input class="col1" type="text" name="tree" value="1"/></td>
  21.     <td ><input class="col2" type="text" name="one" value="1"/></td>
  22.     <td ><input class="col3" type="text" name="one" value="1"/></td>
  23. </tr>
  24. <tr>
  25. <td ><input class="col1" type="text" name="one" value="1"/></td>
  26.      <td ><input class="col2" type="text" name="one" value="1"/></td>
  27.     <td ><input type="text" class="total" name="one" value=""/></td>
  28. </tr>
  29.  

NoBBy

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 4
  • -Получени: 38
  • Публикации: 309
Re: Сума на инпут полета
« Отговор #1 -: 27 Септември 2013, 15:30:43 »
Аз не схванах задачката. Реших че ще е по-лесно ако пробвам кода, но не би.

Ето DEMO на твоя код.
На места не мога да въвеждам нищо, на места като въведа нещо се променя в повече клетки, а като гледам и total клетките са някак си разбъркано разположени.

Така ли трябва да се държат? Опитай се да обясниш по-добре какво искаш. Използвай и малко css ако трябва да маркираш коя клетка какво прави и се опитай да си преформулираш въпроса.

krastio

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 4
Re: Сума на инпут полета
« Отговор #2 -: 27 Септември 2013, 16:44:53 »
Идеята е следната ако имам една колона с 20 реда първите 5 реда ги сумирам на ред 6 следващите 4 на ред 10 и т.н. таблицата е с 10 колони във всяка има такива суми. Тук понеже класа тотал е един и същ за това попълва автоматично каквото трябва и каквото не. Някак трябва да се върже класа,който с сумира и тотала за него, но незнам как.

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 125
  • -Получени: 73
  • Публикации: 1005
  • Кибик
Re: Сума на инпут полета
« Отговор #3 -: 27 Септември 2013, 20:39:55 »
За складовата програма, която съм направил, за сумиране на полета ползвам JavaScript(jQuery). Задавам някакъв клас или с нещо с което да бележа полетата, които искам да сумирам и си ги смятам...
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой

wicked92

  • Full Member
  • ***
  • Благодарности
  • -Казани: 13
  • -Получени: 7
  • Публикации: 178
Re: Сума на инпут полета
« Отговор #4 -: 04 Октомври 2013, 17:21:38 »
Погледни тези два проекта:
http://angularjs.org/
http://knockoutjs.com/

AngularJS не сьм го пробвал още, a от Knockout сьм доволен.