2013-02-11 59 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> 

继承人我的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) 
}); 

编辑:

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

仍然无法正常工作......是因为我的超时时间是一个数组吗? ..我试图改变它:'选择[name =“overtimehours [$ transnum]”]'但仍然无法正常工作.. grr – rubberchicken 2013-02-11 17:58:53

+0

检查您的控制台,出现任何错误? – Dom 2013-02-11 17:59:37

+0

没有错误。这是令人沮丧的..这样一个简单的功能,我需要什么都没有用lol – rubberchicken 2013-02-11 18:06:30

1

您将overtimehours称为id和类名,但您的输入既没有id也没有类名。我建议为每个要计算的输入添加一个名为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 2013-02-11 17:34:57

+0

添加你的html的输出,而不是你的PHP创建它..到问题。或者用这个问题创建一个jsFiddle。 – 2013-02-11 17:36:49