0

いくつかのjQueryチェックボックスを備えたテーブルがあります。各チェックボックスがクリックされると、これにより、以下を使用して下の行の合計を更新するメソッドがトリガーされます。onclick="UpdateTotalFee()"

ページが最初に読み込まれるとき、すべてが期待どおりに完全に機能します。チェックボックスをクリックするたびに、UpdateTotalFee()メソッドが起動します。

問題が発生するのは、ユーザーが[すべて選択]リンクをクリックした後です。これは、すべてのチェックボックスを正しく選択するように機能しますが、その後チェックボックスをクリックしても、合計を更新するメソッドはトリガーされなくなります。

ファイアバグを調べると、ページが最初に読み込まれたときにチェックボックスをクリックするとがクリックされているように見えますがspan.checkboxplaceholder、[すべて選択]リンクをクリックした後、チェックボックスをクリックしてもチェックボックスが呼び出されないようです。同じこと。

状況を十分に説明できたと思います。テーブルの完全なコードは次のとおりです。

<table border="1">
<tr>
    <th></th>
    <th style="vertical-align:middle;">Number</th>
    <th style="text-align:left; vertical-align:middle;">Owner</th>
    <th style="text-align:left; vertical-align:middle;">Address</th>
    <th style="vertical-align:middle;">Code</th>
    <th style="vertical-align:middle;">Class</th>
    <th style="vertical-align:middle;">Filing Fee</th>
    <th style="text-align:center; width:75px;">Review ?<br />
    <a href="" onclick="select_all_com(); return false"><strong>All</strong></a>
     &nbsp;&nbsp;or&nbsp;&nbsp;
    <a href="" onclick="select_none_com(); return false"><strong>None</strong></a>
    </th>
</tr>

<?php foreach ($property['commercial'] as $key => $value): ?>
    <tr>
        <th><?php echo str_pad($row++, 2, '0', STR_PAD_LEFT); ?></th>
        <td><a href= "<?php echo site_url() . "propertydetail/viewpropertydetail/" . $value['property#']; ?>"><?php echo RollNumber($value['property#']); ?></a></td>
        <td style="text-align:left"><?php echo $value['Property Owner']; ?> </td>
        <td style="text-align:left"><?php echo $value['Property Address']; ?></td>
        <td style="text-align:middle" ><?php echo number_format($value['PC'],0); ?></td>
        <td><?php echo $value['Class']; ?></td>
        <td><?php echo money_format('$%.0i', 140); ?></td>
        <td id="com" style="padding-left:25px;" onclick="UpdateTotalFee()">
<input type="checkbox" name="file_com_appeal" class="com-checkbox" value="<?php echo $value['property#'] ?>"></td>
    </tr>
<?php endforeach; ?>
    <th colspan="6" style="text-align:right; padding:1% 1% 1% 0%;">       
    <h4>TOTAL</h4><h5><span id="AppealSelected"></span></h5></th>
    <th ><h4><span id="AppealFeeTotal"></span></h4></th>
    <th></th>

チェックボックスをクリックするたびに呼び出されることになっているJavascript関数は次のとおりです。

function UpdateTotalFee(){
        var AppealCount = 0;
        $('input[name=file_com_appeal]').each(function(){
            if($(this).attr('checked')){
               AppealCount++;
            }
        });
        $('#AppealSelected').text(                                      
        (AppealCount == 0 ? '' : '(' + AppealCount + ' of ' + <?php echo count($property['commercial']);?> + (AppealCount == 1 ? ' property selected)' : ' properties selected)')));    
        $('#AppealFeeTotal').text("$"+(AppealCount*140));
    }
4

2 に答える 2

1

チェックボックスは、チェックされている (チェックされていない) 場合に " " イベントをトリガーonchangeします。そうではなく、JavaScript コードでこのイベントをリッスンします。次に、イベント ハンドラーでチェックボックスがオンになっているかどうかを確認して、合計金額に変更を適用します。サンプル:

[HTML]
<input type="checkbox" name="check" id="check" value="1" onchange="updateAmount();"/>

[JS]
function updateAmount(){
     if($('input#check').is(':checked')){
           // checked
     }else{
          // unchecked
     }
}
于 2012-12-24T03:44:59.910 に答える
0

新しい関数を 1 つ作成し、その関数を select All の onclick で呼び出し、合計行数をこの関数のパラメーターとして渡して、合計金額を簡単に計算できるようにしてください。

totalamount= count*140 以下のコードを使用してこの値を設定します

$('#AppealFeeTotal').text("$"+(totalamount));
于 2012-12-24T06:59:14.557 に答える