1

基本的に私が抱えている問題は、2番目のドロップダウン(bagel_form)が最初のドロップダウンの値を継承し、それに基づいて合計を計算していることです。

私がしたいのは、ITの現在のドロップダウンに基づいて、その値を合計に加算することです。チェックボックスがオンの場合は合計に加算し、チェックボックスがオフの場合は合計から減算します。(ドロップダウン修飾子に基づく)。

やや紛らわしいので、問題を説明するためにフィドルを作成しました。

http://jsfiddle.net/Gqzhq/5/


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>

4

1 に答える 1

3

ids(myselect)を繰り返しています。IDを繰り返し、IDで選択しようとすると、最初のIDが選択されます。

動作するコードは次のとおりです。

http://jsfiddle.net/Gqzhq/10/

クラスに変更myselectし、現在のチェックボックスへの参照を渡しました。そこから次に近いものを見つけて、.myselectその値を使用できます。

于 2012-11-20T17:47:25.300 に答える