2016-01-12 61 views
-5

我顯示選中某些複選框時複選框值的總數。它的工作正常。我需要在頁面加載時顯示所有複選框值總計,如果選中或不選,則無關緊要。這也工作正常。但最後如果我不勾選所有的複選框,它也應該顯示整個複選框值總數..我將如何實現這一目標?使用jquery顯示記錄的總和

<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 

<title> Calc</title> 

<script type='text/javascript'> 
function getTotal(objSelector) 
{ 
    var total = 0; 
    objSelector.each(function() { 
     total += parseInt($(this).val()); 
    }); 
    $("#tot_amount").val(total.toFixed(3)); 
    if (total == 0) { 
     $('#total1').val(''); 
    } else { 
     $('#total1').val(total); 
    } 
} 
$(document).ready(function() { 
    getTotal($(".tot_amount")); 
    $(".tot_amount").change(function (event) { 
     getTotal($(".tot_amount:checked")); 
    }); 

}); 
</script> 

</head> 

<body> 
<table border="1"> 
<tr><td>10<input type="checkbox" class="tot_amount" value="10"></td></tr> 
<tr><td>20<input type="checkbox" class="tot_amount" value="20"></td></tr> 
<tr><td>30<input type="checkbox" class="tot_amount" value="30"></td></tr> 
<tr><td>40<input type="checkbox" class="tot_amount" value="40"></td></tr> 
<tr><td>50<input type="checkbox" class="tot_amount" value="50"></td></tr> 
<tr><td>60<input type="checkbox" class="tot_amount" value="60"></td></tr> 
<tr><td>70<input type="checkbox" class="tot_amount" value="70"></td></tr> 

<tr><td>Total<input type="text" id="total1" readonly></td></tr> 
</table> 

</body> 
+0

請不要做出同樣的問題,不同崗位,,你可能會通過編輯你自己的問題http://stackoverflow.com/questions/34735834/jquery-show-the-sum-total-when問同樣的事情-checkbox IS-檢查/ 34736130#34736130 –

回答

3

嘗試這樣

if($(".tot_amount:checked").length == 0){ 
    getTotal($(".tot_amount")); 
} 

的完整代碼

$(".tot_amount").change(function (event) { 

    if($(".tot_amount:checked").length == 0){ 
     getTotal($(".tot_amount")); 
    } 
    else 
    getTotal($(".tot_amount:checked")); 
}); 
0

更改這一部分:

$(".tot_amount").change(function (event) { 
    getTotal($(".tot_amount:checked")); 
}); 

您應該檢查選中的元素

量3210

例如

$(".tot_amount").change(function (event) { 
    if($('.tot_amount').length === 0) { 
     getTotal($('.tot_amount')); 
    } else { 
     getTotal($(".tot_amount:checked")); 
    } 
}); 
1

DEMO按您的要求...檢查出DEMO

$(function(){ 
$(".tot_amount").click(function(event) { 
var total = 0; 
$(".tot_amount:checked").each(function() { 
total += parseInt($(this).val()); 
}); 
    //$("#tot_amount").val(sum.toFixed(3)); 
if($(".tot_amount:checked").length == 0){ 

var total2=0; 
    $(".tot_amount").each(function() { 
total2 += parseInt($(this).val()); 

}); 


$('#total1').val(total2); 
}else 
{ 
$('#total1').val(total); 
} 


}); 

}); 

$(document).ready(function() { 
var total2=0; 
    $(".tot_amount").each(function() { 
total2 += parseInt($(this).val()); 

}); 


$('#total1').val(total2); 
});