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 演示修复:http : //jsfiddle.net/st8Y3/6/

4

3 回答 3

1

您同时引用overtimehoursid 和类名,但您的输入既没有 id 也没有类名。我建议overtimehours为要计算的每个输入添加一个名为的类,并将您的选择器更改为$('.overtimehours')而不是$('#overtimehours').

于 2013-02-11T17:28:04.183 回答
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)
});

演示:http: //jsfiddle.net/dirtyd77/st8Y3/3/

于 2013-02-11T17:50:51.157 回答
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)
});

更多关于类选择器

于 2013-02-11T17:28:12.530 回答