注文フォームの各行には、数量、価格、合計の 3 つのフィールドがあります。
数値を変更すると小計が計算され、合計も計算される関数を作成するにはどうすればよいですか?
誰でも方法を提案できますか?
注文フォームの各行には、数量、価格、合計の 3 つのフィールドがあります。
数値を変更すると小計が計算され、合計も計算される関数を作成するにはどうすればよいですか?
誰でも方法を提案できますか?
価格または数量が更新されたときに、新しい数量と価格を取得して合計列を更新できるように、各行にリスナーを追加する必要があります。
jQuery では、次のようなものです。
$('.row').on('change', function() {
var quantity = $('.quantity', this).val(), // get the new quatity
price = $('.price', this).val(), // get the new price
total = price*quantity;
$('.total', this).val(total); //set the row total
var totals = $.map($('.row .total'), function(tot) {
return tot.val(); // get each row total into an array
}).reduce(function(p,c){return p+c},0); // sum them
$('#total').val(totals); // set the complete total
});
row
これは、各注文フォームの行コンテナに classがあり、各数量に class がありquantity
、各行の合計に class がtotal
あり、注文フォームの合計に idがあることを前提としていtotal
ます。