基本的に私が抱えている問題は、2番目のドロップダウン(bagel_form)が最初のドロップダウンの値を継承し、それに基づいて合計を計算していることです。
私がしたいのは、ITの現在のドロップダウンに基づいて、その値を合計に加算することです。チェックボックスがオンの場合は合計に加算し、チェックボックスがオフの場合は合計から減算します。(ドロップダウン修飾子に基づく)。
やや紛らわしいので、問題を説明するためにフィドルを作成しました。
HTML
<table id="hor-minimalist-b" summary="Breakfast Sponsor">
<th>Pizza</th> <th>Bagel</th>
<tr>
<td><input type="checkbox" name="pizza_form" id="1" value="500">
<select id="my_select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></td>
<td><input type="checkbox" name="bagel_form" id="1" value="200">
<select id="my_select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></td>
</tr>
</table>
<div id="total_price">Total:</div>
<input class="total" readonly="readonly">
Jquery
var total = 0;
$('input[name=pizza_form], input[name=bagel_form] ').live('click', function() {
var current_price = parseInt($(this).attr('value'));
if($(this).hasClass('checked'))
{
$(this).removeClass('checked');
total -= current_price ;
remove_dropdowns(total) ;
}
else
{
$(this).addClass('checked');
total += current_price ;
add_dropdowns(total) ;
}
function add_dropdowns(total) {
var quantity = parseInt($('#my_select').val());
var new_price = parseInt(quantity * total);
$("input[class='total']").val(new_price);
$('select#my_select').change(function() {
var quantity = parseInt($('#my_select').val());
var new_price = parseInt(quantity * total);
$("input[class='total']").val(new_price);
});
}
function remove_dropdowns(total) {
var quantity = parseInt($('#my_select').val());
var new_price = parseInt(quantity * total);
$("input[class='total']").val(new_price);
$('select#my_select').change(function() {
var quantity = parseInt($('#my_select').val());
var new_price = parseInt(quantity * total);
$("input[class='total']").val(new_price);
});
}
});
</ p>