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

ID とクラス名の両方を参照しovertimehoursていますが、入力には 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

ジャバスクリプト:

$(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を select 宣言に追加します。

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 に答える