Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Cуммировать input
 
 автор: OLi   (15.08.2012 в 23:01)   письмо автору
 
 

Есть код:
function counter_all() {

  $("input").each(function(){
      var total_all=0;
      var item_total = parseInt($(this).val(),10);
      total_all += item_total;
    });
  return $("#itog").text(total_all);

}  

Который почему-то не суммирует значение введенное в input
В чем проблема?

  Ответить  
 
 автор: confirm   (15.08.2012 в 23:37)   письмо автору
 
   для: OLi   (15.08.2012 в 23:01)
 

[поправлено модератором]

  Ответить  
 
 автор: OLi   (15.08.2012 в 23:41)   письмо автору
 
   для: confirm   (15.08.2012 в 23:37)
 

Сделал так:

function counter_all() {
   var total_all=0;
   var item_total=0;
  $(".calc input").each(function(){
    if ($(this).val()=='') {item_total=0;} else { item_total = parseInt($(this).val(),10);}
      total_all += item_total;
    });

  return $("#itog").text(total_all);

}  


Спасибо за помощь
Есть еще один вопроc: почему не скрывает поле input

$('#kombi4').change(function() {
     if($(this).val()==0) {$("#kombi4_input").css('display','none');}
    $(this).next('input').show();
  });

  Ответить  
 
 автор: confirm   (15.08.2012 в 23:57)   письмо автору
 
   для: OLi   (15.08.2012 в 23:41)
 

Вот сейчас верно указано место total_all - вне цикла, иначе с чего бы оно суммировало, вы получали бы в результате последнее ее значение. Вы либо не то запрашиваете, либо действительно не цифры.
NaN будет выведен в том случае, если значение $(this).val() начинается не с допустимого символа.
И никогда не указывайте так: $(".calc input"), укажите перед классом элемент, чтобы jquery меньше парсил стили.

Почему не скрывает сказать не могу, не вижу html-исходника.

  Ответить  
 
 автор: OLi   (16.08.2012 в 00:03)   письмо автору
 
   для: confirm   (15.08.2012 в 23:57)
 

Вот html исходник:

<div id="kombi4_div">
<select id="kombi4">
    <option value="0"></option>
    <option value="10">10 mm</option>
    <option value="12">12 mm</option>
</select><input type="text" value="" id="kombi4_input">
</div>

  Ответить  
 
 автор: confirm   (16.08.2012 в 00:27)   письмо автору
 
   для: OLi   (16.08.2012 в 00:03)
 

Потому, что не выполняется условие:
if($(this).val()==0)
значение опций, это строка, а не число.

  Ответить  
 
 автор: OLi   (16.08.2012 в 00:33)   письмо автору
 
   для: confirm   (16.08.2012 в 00:27)
 

АА понял тогда так ='0'

  Ответить  
 
 автор: OLi   (16.08.2012 в 00:35)   письмо автору
 
   для: OLi   (16.08.2012 в 00:33)
 

Но даже так не сработало

  Ответить  
 
 автор: confirm   (16.08.2012 в 01:46)   письмо автору
 
   для: OLi   (16.08.2012 в 00:35)
 

Все работает. А вот пустые описания опций, это нечто...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования