2012-12-24 104 views
0

我有一個jQuery複選框的表。當每個複選框被點擊時,這會觸發一種方法來更新底行中的總數:onclick="UpdateTotalFee()"jQuery複選框不會在全選方法後觸發事件

當頁面初始加載時,所有內容都按預期完美工作。每個複選框點擊觸發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)); 
    } 
+2

你能提供的JavaScript函數的源代碼這個價值? – ramblinjan

+0

嗨@jandjorgensen,我發佈了javascript函數。 – DanielAttard

回答

0

請創建一個新的功能,並調用該函數的onclick的選擇全部經過總行數,因爲這功能,所以你可以很容易計算出總金額的參數。

totalamount= count*140 和設置使用下面的代碼

$('#AppealFeeTotal').text("$"+(totalamount)); 
1

複選框觸發「onchange」事件,如果它(未)checked.so寧可在您的JavaScript代碼中監聽此事件。然後檢查您的事件處理程序中是否選中了複選框,以將更改應用於總金額。 樣品:

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

[JS] 
function updateAmount(){ 
    if($('input#check').is(':checked')){ 
      // checked 
    }else{ 
      // unchecked 
    } 
} 
相關問題