2016-08-26 10 views
0

ユーザーが何かを変更してすべての値を再計算するときに自分自身を更新するフォームがありますが、一部の値はPHPセッションから取得されるため、ページの読み込み時に更新し、 onchange()と同じようにload()でjQuery関数を実行する

$(document).ready(function() { 
    $('.qty').change(function() { 
     update_amounts(); 
    }); 

    update_amounts(); //<--- must to be executed on document.ready() 
}); 

function update_amounts() { 
    var sum = 0.0; 
    $('#myTable > tbody > tr').each(function() { 

     var qty = $(this).find('option:selected').val(); 
     var price = $(this).find('.price').val(); 
     var amount = (qty*price) 
     sum+=amount; 
     $(this).find('.amount').text(''+amount); 
    }); 
    //calculate the total to sum 
    $('.total').val(sum); 
    //calculate total + shipping and add VAT 
    var shipping = $('.shipping').val(); 
    var total = $('.total').val(); 
    var vat = $('.vat').val(); 
    //calculate vat 
    var vat_value = ((total*vat)/100); 
    //calculate grand total 

    sub_total = (parseFloat(total)+parseFloat(shipping)).toFixed(2); 

    var grand_total = (parseFloat(sub_total)+parseFloat(vat_value)).toFixed(2); 

    $('.grandTotal').val(grand_total); 
    $('.modalTotal').val(grand_total); 
} 

しかし、私はいくつかの値を変更し、document.ready();

に誰かが理由を説明できないときは、このコードが実行されるだけ?どのように機能することができますupdate_amounts();は負荷で起動することができますか?

+4

正しいと思われます。何かエラーがありますか? – eisbehr

+0

表示されているコードは、ドキュメントの準備時にupdate_amountsを実行する必要があります...コンソールエラーはありますか? –

+0

いいえ...コンソールにエラーはありません。なぜ、解決策が見つからないのですか? – andreaem

答えて

0

私は窓がロードされたときにこれが機能update_amounts();を呼び出します

$(window).load(function() { update_amounts(); }); 

を使用して問題を解決してきました。

関連する問題