2013-02-11 3 views
0

Я пытаюсь добавить сумму моего выпадающего списка значений, чтобы дать общее значение в нижней части ...добавить сумма нескольких выпадающий список

это мой JavaScript:

<script src="js/jquery-1.9.1.min.js"></script> 
     <script type="text/javascript"> 
$("#overtimehours").change(function() { 
    var total = 0; 
    $.each($(".overtimehours") ,function() { 
     total += parseInt($(this).val()); 
    }); 
    $("#sum").val(total) 
}); 
    </script> 

Heres мой PHP:

print "<td><div align=\"center\"><select name=\"overtimehours["; echo $transnum; print "]\"><option value=\"$ot_hours\">$ot_hours</option>"; overtimehours_list(); 
print "</select></div></td>\n"; 

print "<td><div align=\"center\"><b><input id=\"sum\" type=\"text\"/></b></td></tr>\n"; //add up OT hrs 

ПОСТАНОВИЛИ :: Херес JSFIDDLE DEMO FIX: http://jsfiddle.net/st8Y3/6/

ответ

1

Держите PHP же и сделать это ...

$(document).on('change', 'select[name="overtimehours"]', function(){ 
    var total = 0; 
    $('select[name="overtimehours"]').each(function() { 
     total += parseInt($(this).val()); 
    }); 
    $('#sum').val(total) 
}); 

EDIT:

PHP:

print "<td><div align=\"center\"><select class=\"overtimehours\" name=\"overtimehours["; echo $transnum; print "]\"><option value=\"$ot_hours\">$ot_hours</option>"; overtimehours_list(); 
print "</select></div></td>\n"; 

print "<td><div align=\"center\"><b><input id=\"sum\" type=\"text\"/></b></td></tr>\n"; //add up OT hrs 

JAVASCRIPT:

$(document).on('change', '.overtimehours', function(){ 
    var total = 0; 
    $('.overtimehours').each(function() { 
     total += parseInt($(this).val()); 
    }); 
    $('#sum').val(total) 
}); 

DEMO: http://jsfiddle.net/dirtyd77/st8Y3/3/

+0

все еще не работает ... это потому, что мой overtimehours - это массив? .. Я попытался изменить его на: 'select [name = "overtimehours [$ transnum]"]', но все равно не работает .. grr – rubberchicken

+0

Проверьте свою консоль, какие-нибудь ошибки появляются? – Dom

+0

никаких ошибок. это расстраивает .. такая простая функция, в которой мне еще ничего не работает lol – rubberchicken

1

Вы ссылаетесь на overtimehours как на идентификатор, так и на имя класса, но ваш вход не имеет ни имени, ни имени класса. Я бы предложил добавить класс с именем overtimehours к каждому входу, который должен быть рассчитан, и изменить селектор на $('.overtimehours') вместо $('#overtimehours').

0

Добавьте класс overtimeshours к вашему объявлению.

print "<td><div align=\"center\"><select class=\"overtimehours\" name=\"overtimehours["; echo $transnum; print "]\"><option value=\"$ot_hours\">$ot_hours</option>"; overtimehours_list(); 

Изменить ваш Jquery к:

$(".overtimehours").change(function() { 
    var total = 0; 
    $.each($(".overtimehours") ,function() { 
     total += parseInt($(this).val()); 
    }); 
    $("#sum").val(total) 
}); 

Подробнее о Class Selectors

+0

до сих пор не работает. – rubberchicken

+0

Добавьте вывод своего html..не вашего php, который его создает .. на вопрос. Или создайте jsFiddle с проблемой. –

Смежные вопросы