select-on-check-all gridview CheckboxColumn

Hi All,

I have gridview CheckboxColumn and have event calculate sum of one column (jquery). But when user click select-on-check-all column, it always give late result.

Checkall give sum 0 and uncheck all give right sum.

Why?

here are my code.


[

	'class' => 'yii\grid\CheckboxColumn',

	'checkboxOptions' =>

		function($model) {

			return ['value' => $model->id, 'class' => 'checkbox-row', 'id' => 'checkbox'];

		}

],

and my jquery




$('.select-on-check-all, .checkbox-row').click(function(){

    calculateNettoReceive();

})


function calculateNettoReceive()

{            

    var total_netto_send = 0; var total_netto_receive = 0; var total_susut = 0;

    var netto_send = 0; var netto_receive = 0; var susut = 0;

    for(var i=0; i < $('#checkbox.checkbox-row').length; i++)

    {           

        if($('#checkbox.checkbox-row')[i].checked == true) {

            netto_send = document.getElementById('table-penerimaan-produksi').getElementsByTagName('tr')[i+1].getElementsByTagName('td')[6].innerHTML;

            netto_receive = document.getElementById('table-penerimaan-produksi').getElementsByTagName('tr')[i+1].getElementsByTagName('td')[5].innerHTML;

            susut = document.getElementById('table-penerimaan-produksi').getElementsByTagName('tr')[i+1].getElementsByTagName('td')[7].innerHTML;

            netto_send = netto_send == "" ? 0 : Number(netto_send.split(",").join(""));

            netto_receive = netto_receive == "" ? 0 : Number(netto_receive.split(",").join(""));

            susut = susut == "" ? 0 : Number(susut.split(",").join(""));

            total_netto_send += netto_send;

            total_netto_receive += netto_receive;

            total_susut += susut;

        }           

    }    

    $('#realisasiproduksi-total_netto_send').val(total_netto_send);

    $('#realisasiproduksi-total_netto_receive').val(total_netto_receive);

    $('#realisasiproduksi-total_susut').val(total_susut);

}



solved by changing jquery event.




$('.select-on-check-all, .checkbox-row').click(function(){

    calculateNettoReceive();

})



change to




$('.select-on-check-all, .checkbox-row').change(function(){

    calculateNettoReceive();

})